martes, 10 de agosto de 2010

Cómo obtener los privilegios (grants) de todos los usuarios de una BD MySQL

MySQL ofrece un comando para ver los privilegios (grants - o más bien concesiones) de un usuario, éste es: show grants for user@machine. Recuerde que el comodín para máquinas es: %.

Luego, me preguntaba cómo hacer para obtener todos los privilegios para todos los usuarios y de una vez en un formato que pudiese llevar a otro manejador (para restaurar), pues casualmente conseguí el dato aquí y lo comparto con ustedes porque lo considero de gran utilidad.

$  mysql -u root --batch --skip-column-names -e "SELECT user, host FROM user" mysql | sed 's,\t,"@",g;s,^,show grants for ",g;s,$,";,g;' | mysql --batch --skip-column-names | sed 's,$,;,g'

La salida estará lista para ingresarla en otro manejador. Ahora, si lo que se desea es simplemente ver el desglose de los permisos de un usuario, puede ejecutar:
$ mysql -u root -e "SELECT * FROM information_schema.USER_PRIVILEGES"


No hay comentarios:

Publicar un comentario