Comment obtenir une liste de comptes d’utilisateurs MySQL

J’utilise l’utilitaire de ligne de commande MySQL et je peux naviguer dans une firebase database. Maintenant, je dois voir une liste de comptes d’utilisateurs. Comment puis-je faire ceci?

J’utilise la version 5.4.1 MySQL.

Utilisez cette requête:

 SELECT User FROM mysql.user; 

Qui produira un tableau comme celui-ci:

 +-------+ | User | +-------+ | root | +-------+ | user2 | +-------+ 

Comme Matthew Scharley le fait remarquer dans les commentaires sur cette réponse , vous pouvez regrouper par la colonne User si vous souhaitez uniquement voir des noms d’utilisateur uniques.

Je trouve ce format le plus utile car il inclut le champ hôte qui est important dans MySQL pour distinguer les enregistrements utilisateur.

 select User,Host from mysql.user; 

Un compte d’utilisateur comprend le nom d’utilisateur et l’access au niveau de l’hôte.

Par conséquent, c’est la requête qui donne tous les comptes d’utilisateur

 SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user; 

pour éviter les répétitions d’utilisateurs lorsqu’ils se connectent de différentes origines:

 select distinct User from mysql.user; 

Si vous faites référence aux utilisateurs réels de MySQL, essayez:

 select User from mysql.user; 

MySQL stocke les informations utilisateur dans sa propre firebase database. Le nom de la firebase database est MySQL . Dans cette firebase database, les informations utilisateur se trouvent dans une table, un dataset, un user nommé. Si vous voulez voir quels utilisateurs sont configurés dans la table utilisateur de MySQL, exécutez la commande suivante:

 SELECT User, Host FROM mysql.user; +------------------+-----------+ | User | Host | +------------------+-----------+ | root | localhost | | root | demohost | | root | 127.0.0.1 | | debian-sys-maint | localhost | | | % | +------------------+-----------+ 
 SELECT * FROM mysql.user; 

C’est une grande table, donc vous pourriez vouloir être plus sélectif sur les champs que vous choisissez.

Connectez-vous à mysql en tant que root et tapez la requête suivante

 select User from mysql.user; +------+ | User | +------+ | amon | | root | | root | +------+ 

La table mysql.db est peut-être plus importante pour déterminer les droits des utilisateurs. Je pense qu’une entrée est créée si vous mentionnez une table dans la commande GRANT. Dans mon cas, la table mysql.users n’a montré aucune permission pour un utilisateur quand il était évidemment capable de se connecter et de sélectionner, etc.

 mysql> select * from mysql.db; mysql> select * from db; +---------------+-----------------+--------+-------------+-------------+-------------+-------- | Host | Db | User | Select_priv | Insert_priv | Update_priv | Del... 

Peter et Jesse ont raison mais assurez-vous de sélectionner d’abord la firebase database mysql.

use mysql;

select User from mysql.user;

ça devrait faire ton tour

Je l’utilise pour sortinger les utilisateurs afin que les hôtes autorisés soient plus faciles à repérer:

 mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host; 

ici afficher Liste des utilisateurs uniques.

 SELECT DISTINCT User FROM mysql.user; 
 $> mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt 

L’exécution de cette commande à l’invite linux demandera d’abord le mot de passe de l’utilisateur root mysql, en fournissant le mot de passe correct, il imprimera tous les utilisateurs de la firebase database au fichier texte.

Je l’ai trouvé plus utile car il fournit des informations supplémentaires sur les privilèges DML et DDL

 SELECT user, Select_priv, Insert_priv , Update_priv, Delete_priv, Create_priv, Drop_priv, Shutdown_priv, Create_user_priv FROM mysql.user;