Quels utilisateurs MySQL ont accès à une base de données?

13

Comment savoir quels utilisateurs MySQL ont accès à une base de données et quels sont leurs privilèges?

Il me semble que je peux obtenir ces informations de phpMyAdmin lorsque je clique sur "Privilèges". . .

                 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

. . . mais je voudrais savoir comment effectuer cette requête à partir de la ligne de commande.

(phpMyAdmin me montre souvent la syntaxe SQL de la commande qu'il exécute, mais je ne la vois pas dans ce cas.)

Veuillez noter que je ne demande pas quelles sont les autorisations accordées à un utilisateur particulier (c'est-à-dire "AFFICHER LES SUBVENTIONS pour myuser1") mais plutôt, étant donné le nom d'une base de données, comment puis-je déterminer quels utilisateurs MySQL ont accès à cette base de données et quels privilèges ils ont ? Fondamentalement, comment puis-je obtenir le graphique ci-dessus à partir de la ligne de commande?

Philip Durbin
la source

Réponses:

16

Vous pouvez ajouter \ G à la commande pour obtenir les résultats affichés dans la vue «grille»

SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;
Graham
la source
4
+1 pour \ G jamais vu auparavant
jx12345
8
SELECT * FROM mysql.db WHERE Db = '<database name in LC>';
K. Brian Kelley
la source
Merci. Cette réponse semble produire les mêmes données brutes que le graphique de la question. . . mais dans un format moins lisible. Je suppose que présenter les données dans le même format est un exercice pour le lecteur. . . ;)
Philip Durbin
2

Vous pourriez essayer ceci, devrait fournir la meilleure lisibilité:

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

Quelque chose de plus mémorable pour le cli:

select db,host,user from mysql.db;
sjas
la source