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

9

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á executando, mas não o vejo neste caso.)

Por favor, note que eu não estou perguntando o que concede um determinado usuário (ou seja, "SHOW GRANTS para myuser1") mas sim, dado o nome de um banco de dados, como determinar quais usuários do MySQL têm acesso a banco de dados e quais os privilégios que eles têm? Basicamente, como posso obter o gráfico acima a partir da linha de comando?

    
por Philip Durbin 01.05.2009 / 19:23

3 respostas

11

Você pode acrescentar \ G ao comando para obter resultados exibidos em 'grid' veiw

SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;
    
por 25.04.2012 / 13:19
8
SELECT * FROM mysql.db WHERE Db = '<database name in LC>';
    
por 01.05.2009 / 19:29
2

Você pode experimentar isso, deve fornecer a melhor legibilidade:

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

Algo mais memorizável para o cli:

select db,host,user from mysql.db;
    
por 03.07.2015 / 15:35

Tags