2011-03-13 15 views
7

De: http://dev.mysql.com/doc/refman/5.0/en/drop-database.htmlRevocar todos los privilegios para todos los usuarios en una base de datos MySQL

... cuando se deja caer una base de datos, privilegios del usuario en la base de datos no son automáticamente retirados.

Entonces la pregunta es, ¿cómo se revocan todos los privilegios para todos los usuarios en una base de datos MySQL? Me imagino que es simple, pero me sorprende que no haya podido encontrar esto en ninguna parte.

+1

Puede utilizar el [ 'revoke'] (http://dev.mysql.com/doc /refman/5.1/en/revoke.html) comando. Es importante tener en cuenta – ryanprayogo

Respuesta

10

Puede revocar todos los privilegios de un usuario específico con this syntax:

REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ... 
FLUSH PRIVILEGES; 

que cae de todo, la base de datos, tabla, columna global y privilegios de rutina para el usuario con nombre o usuarios

Sin embargo, no estoy seguro si hay una manera de hacer esto para todos los usuarios a la vez.

+2

, 5.5 al menos la "opción de concesión" aunque el usuario no posea la opción de concesión – CrackerJack9

-2
USE mysql; 
DELETE * FROM user; 
FLUSH PRIVILEGES; 

... borrará todos usuarios, incluyendo las raíces y lo que se está conectando con, por lo que es posible que desee agregar una cláusula WHERE.

+0

Esto es demasiado. ¡Lo quiero para * todos * usuarios, pero no para todos los usuarios en todas las bases de datos! – mlissner

+0

Esto debería ser simplemente "ELIMINAR del usuario"; -- No es necesario. – rrauenza

+1

'FLUSH PRIVILEGES' no es necesario aquí. Solo en los primeros días (mysql 3.x), cuando manipulaba las tablas directamente. –

0

supongo que puede hacer:

REVOKE ALL PRIVILEGES FROM '%'@'%'; 
FLUSH PRIVILEGES; 

(No modificar las tablas de MySQL directamente)

+0

necesidad ", opción de concesión", al menos con 5.5 para revocar todos los privilegios – CrackerJack9

0
REVOKE ALL PRIVILEGES FROM '%'@'%'; 

Lo anterior podría ser peligroso ya que supongo que eliminará todos los privilegios de todo el usuarios, incluyendo la raíz

Modificar a:

REVOKE ALL PRIVILEGES FROM 'user'@'localhost'; 

o

REVOKE ALL PRIVILEGES FROM 'user'@'%'; 

antes de ejecutar

+1

necesidad ", opción de concesión", al menos con 5.5 para revocar todos los privilegios – CrackerJack9

+0

Esto es muy peligroso y no recomendado. – MontyPython

3
REVOKE ALL PRIVILEGES ON *.* FROM '<user_name>'@'localhost'; 
REVOKE ALL PRIVILEGES ON *.* FROM '<user_name>'@'%'; 

Ej .:

REVOKE ALL PRIVILEGES ON *.* FROM 'jeffrey'@'localhost'; 
REVOKE ALL PRIVILEGES ON *.* FROM 'jeffrey'@'%'; 
Cuestiones relacionadas