it-swarm-es.com

¿Qué usuarios de MySQL tienen acceso a una base de datos?

¿Cómo puedo saber qué usuarios de MySQL tienen acceso a una base de datos y qué privilegios tienen?

Parece que puedo obtener esta información de phpMyAdmin cuando hago clic en "Privilegios". . .

                 Users having access to "mydatabase"
User     Host       Type               Privileges              Grant
myuser1  %          database-specific  ALL PRIVILEGES          Yes
root     localhost  global             ALL PRIVILEGES          Yes
myuser2  %          database-specific  SELECT, INSERT, UPDATE  No

. . . pero me gustaría saber cómo realizar esta consulta desde la línea de comandos.

(phpMyAdmin a menudo me muestra la sintaxis SQL del comando que está ejecutando, pero no lo veo en este caso).

Tenga en cuenta que no estoy preguntando qué otorga un usuario en particular (es decir, "MOSTRAR SUBVENCIONES para myuser1"), sino más bien dado el nombre de una base de datos, ¿cómo puedo determinar qué usuarios de MySQL tienen acceso a esa base de datos y ¿Qué privilegios tienen? Básicamente, ¿cómo puedo obtener el gráfico anterior desde la línea de comandos?

13
Philip Durbin

Puede agregar\G al comando para que los resultados se muestren en la vista 'cuadrícula'

SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;
16
Graham
SELECT * FROM mysql.db WHERE Db = '<database name in LC>';
8
K. Brian Kelley

Puede probar esto, debe proporcionar la mejor legibilidad:

select db 'DATABASE', Host HOST, user USER from mysql.db where db = '<databasename>';

Algo más memorizable para el cli:

select db,Host,user from mysql.db;
2
sjas