mySQL afficher la base de données pour l'utilisateur
Quelqu'un connaît la syntaxe de mySQL pour afficher les noms de base de données qu'un utilisateur a le privilège de le voir dans une base de données mySQL? Dire que l'utilisateur est "dimitris" accès à une base de données à "localhost", quelle serait la syntaxe pour voir toutes les bases de données, il a le privilège select, update, insert, etc?
Dimitris
OriginalL'auteur Sfairas | 2010-10-07
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir la liste des bases de données, vous avez accès à:
Si vous souhaitez obtenir la liste pour un autre utilisateur que l'utilisateur que vous êtes connecté en tant qu', vous devez interroger la
mysql.db
table.Manque d'informations sur ce que le
mysql.db
requête doit être. Pour cette raison, je pense que la réponse de Lekensteyn est plus complète.OriginalL'auteur reko_t
Pour le courant de l'utilisateur connecté, vous pouvez utiliser
SHOW DATABASES;
. Mais, si l'utilisateur a leSHOW DATABASES;
privilège, il sera en mesure de voir toutes les bases de données, même si il n'a pas accès à elle. (référence)En supposant que vous avez un accès en lecture à la
mysql.db
table, vous pouvez utiliser:Cela renvoie un jeu de résultats, avec
Host
(par exemplelocalhost
),Db
(par exemplesomedatabase
),User
(par exempledimitris
) et les privilèges de la base de données (Select_priv
,Update_priv
, etc)OriginalL'auteur Lekensteyn