Você pode acrescentar \ G ao comando para obter resultados exibidos em 'grid' veiw
SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;
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?
SELECT * FROM mysql.db WHERE Db = '<database name in LC>';
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;
Tags mysql