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?
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;
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;