Ya he escrito algunos posts donde se ha hablado un poco de la administración de usuarios y permisos en MySQL como éste o éste otro. Sin embargo, voy a resumir en un breve post la administración de usuarios y permisos de MySQL.
Podemos ver los usuarios que tenemos en el mysql con el siguiente comando:
mysql> select * from mysql.user;
Esto nos mostrará todos los usuarios definidos en mysql, separando además los usuarios por host (si tenemos un usuario [email protected] y el mismo usuario para acceder desde cualquier host user@’%’, aparecerán dos líneas para este usuario.
Para conocer los permisos que tiene un determinado usuario, se podrá usar:
mysql> show grants for user@’host’
Por ejemplo: mysql> show grants for user@’%’
Si se quiere añadir, por ejemplo, el permiso ALTER a la lista de permisos que ya tiene el usuario user@’%’, se podrá usar el siguiente comando:
mysql> grant alter on *.* to user@’%’
Nota: en este caso, *.* corresponde a la base de datos a la cual se le aplicarán los permisos para el usuario (*.* = todas las bases de datos).
Actualización: si se quiere dar el permiso ALTER sólo para una base de datos concreta, se puede usar la sentencia grant alter on `bbdd`.* TO ‘user’@’host’;
Tras modificar los permisos de un usuario, podría ser posible que se necesitara ejecutar un «flush privileges», sin embargo, en ocasiones esto no es necesario.
Finalmente, se podrá eliminar un [email protected] sin eliminar al mismo usuario para otro host, de la siguiente manera:
mysql>drop user user@’%’;
La instrucción anterior eliminaría al usuario user@% pero no eliminaría a [email protected].
Fuentes: http://kb.mediatemple.net/questions/788/HOWTO%3A+GRANT+privileges+in+MySQL#dv
http://serverfault.com/questions/117525/how-can-i-show-users-privileges-in-mysql