Conecte-se à instância do mysql como um usuário admin (geralmente como root) e forneça o seguinte comando ...
select user from mysql.db where db='DB_NAME';
Como conhecer todos os usuários que podem acessar um banco de dados?
Conecte-se à instância do mysql como um usuário admin (geralmente como root) e forneça o seguinte comando ...
select user from mysql.db where db='DB_NAME';
A resposta de user79644 obtém os usuários com privilégios no nível de banco de dados, mas perderá usuários com privilégios apenas no nível da tabela, no nível da coluna ou no nível do procedimento. Para encontrar todos eles, use as seguintes declarações:
SELECT user,host FROM db WHERE db='name';
SELECT user,host FROM tables_priv WHERE db='name';
SELECT user,host FROM columns_priv WHERE db='name';
SELECT user,host FROM procs_priv WHERE db='name';
No MySQL 5.5, pelo menos, parece que ter privilégios no nível da coluna significa que você tem privilégios de nível de tabela. Ter privilégios no nível da tabela não implica que você tenha privilégios no nível do banco de dados. Não tenho certeza sobre os privilégios no nível do procedimento.
# current users that access the db
mysql> show processlist;
+-----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------+------+---------+------+-------+------------------+
| 214 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+-----+------+-----------+------+---------+------+-------+------------------+
# who can access what at anytime and his privilege level
mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
# what privileges are available
mysql> show privileges;
Você deve ter em mente que o MySQL GRANT
para bancos de dados pode conter caracteres curinga . Isso deve ser contabilizado usando LIKE
na consulta:
SELECT user,host FROM db WHERE 'name' LIKE db;
SELECT user,host FROM tables_priv WHERE db='name';
SELECT user,host FROM columns_priv WHERE db='name';
SELECT user,host FROM procs_priv WHERE db='name';