web-dev-qa-db-fra.com

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

Comment puis-je dire quels utilisateurs MySQL ont accès à une base de données et quels privilèges ils ont?

Je semble pouvoir 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 j'aimerais savoir comment effectuer cette requête de la ligne de commande.

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

Veuillez noter que je ne demande pas quelles accusations d'un utilisateur particulier a (c.-à-d. "Afficher des subventions pour Myuser1"), mais é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 tableau ci-dessus de la ligne de commande?

13
Philip Durbin

Vous pouvez ajouter\g à la commande pour obtenir des résultats affichés dans 'Grid' Veiw

SELECT * FROM mysql.db WHERE Db = '<database name in LC>'\G;
16
Graham

Vous pourriez donner cela un essai, devrait fournir la meilleure lisibilité:

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

Quelque chose de plus mémorisable pour le CLI:

select db,Host,user from mysql.db;
2
sjas