Existe uma maneira de listar todos os usuários/hosts que receberam acesso a um banco de dados? Eu sei que posso fazer isso:
> show grants for someuser;
+------------------------------------------------------------------------------------------------------+
| Grants for someuser@% |
+------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `someuser`@`%` IDENTIFIED BY PASSWORD '*XXXXXXXXXXXXX' |
| GRANT ALL PRIVILEGES ON `a_database`.* TO `someuser`@`%` WITH GRANT OPTION |
+------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Ou isto:
> show grants for someuser@afqdn;
+-----------------------------------------------------------------------------------------------------------------------+
| Grants for someuser@afqdn |
+-----------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `someuser`@`qfqdn` IDENTIFIED BY PASSWORD '*XXXXXXXXXXXXX' |
| GRANT ALL PRIVILEGES ON `a_database`.* TO `someuser`@`afqdn` |
+-----------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Existe uma maneira de fornecer o banco de dados na solicitação? E então obter todos os usuários diferentes que receberam acesso a esse banco de dados de uma só vez? Nos exemplos que usei, ele começa com um determinado nome de usuário (e para meu caso de uso específico eu tenho o nome de usuário), mas que tal listar todos os usuários de uma só vez, em vez de adivinhar usuário por usuário / fqdn por fqdn?
Você pode usar a
mysql.db
tabela que armazena os seguintes dadosNo seu caso particular, você pode usar a seguinte consulta