it-swarm-pt.tech

Quais usuários do MySQL têm acesso a um banco de dados?

Como posso saber quais usuários do MySQL têm acesso a um banco de dados e quais privilégios eles têm?

Parece que consigo obter essas informações do phpMyAdmin quando clico em "Privilégios". . .

                 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

. . . mas eu gostaria de saber como executar essa consulta na linha de comando.

(O phpMyAdmin geralmente me mostra a sintaxe SQL do comando que está sendo executado, mas não a vejo neste caso.)

Observe que não estou perguntando o que concede a um usuário específico (por exemplo, "SHOW GRANTS for myuser1"), mas sim dado o nome de um banco de dados, como determino quais usuários do MySQL têm acesso a esse banco de dados e que privilégios eles têm? Basicamente, como posso obter o gráfico acima na linha de comando?

13
Philip Durbin

Você pode anexar\G ao comando para obter os resultados exibidos na tela 'grid'

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

Você pode tentar, deve fornecer a melhor legibilidade:

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

Algo mais memorável para o CLI:

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