Comment connaître tous les utilisateurs pouvant accéder à une base de données?
19
Connectez-vous à l'instance mysql en tant qu'utilisateur administrateur (généralement en tant que root) et donnez la commande suivante ...
select user from mysql.db where db='DB_NAME';
select user from mysql.db
sans qualification renvoie également 2 lignes vides.La réponse de user79644 obtient les utilisateurs avec des privilèges au niveau de la base de données, mais les utilisateurs ne disposant que des privilèges au niveau de la table, de la colonne ou de la procédure manqueront. Pour les trouver tous, utilisez les instructions suivantes:
Dans MySQL 5.5 au moins, il semble que le fait d'avoir des privilèges au niveau des colonnes implique que vous ayez des privilèges au niveau des tables. Avoir des privilèges au niveau de la table n'implique pas que vous ayez des privilèges au niveau de la base de données. Pas sûr des privilèges au niveau de la procédure.
la source
ERROR 1046 (3D000): No database selected
mysql
base de données. C'est là que toutes les données utilisées par MySQL sont stockées. Soit donner la commandeUSE mysql;
d'ajouter le nom de la base de données aux noms de table, commeFROM mysql.db
ouFROM mysql.tables_priv
la source
Vous devez garder à l'esprit que MySQL
GRANT
pour les bases de données peut contenir des caractères génériques . Cela doit être pris en compte en utilisantLIKE
dans la requête:la source