web-dev-qa-db-fra.com

Comment obtenir une liste de comptes utilisateurs MySQL

J'utilise l'utilitaire de ligne de commande MySQL et je peux naviguer dans une base de données. Maintenant, j'ai besoin de voir une liste de comptes d'utilisateurs. Comment puis-je faire ceci?

J'utilise la version MySQL 5.4.1.

1270
burntsugar

Utilisez cette requête:

SELECT User FROM mysql.user;

Ce qui va sortir un tableau comme ça:

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

Comme Matthew Scharley le souligne dans les commentaires sur cette réponse , vous pouvez grouper par colonne User si vous souhaitez uniquement voir des noms d'utilisateur uniques.

1791
George Claghorn

Je trouve ce format le plus utile car il inclut le champ Host, qui est important dans MySQL pour distinguer les enregistrements d’utilisateur.

select User,Host from mysql.user;
425
spkane

Un compte d'utilisateur comprend le nom d'utilisateur et l'accès au niveau de l'hôte.

C'est donc la requête qui donne à tous les comptes d'utilisateurs

SELECT CONCAT(QUOTE(user),'@',QUOTE(Host)) UserAccount FROM mysql.user;
112
RolandoMySQLDBA

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

select distinct User from mysql.user;
47
Nicolas Manzini

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

select User from mysql.user;
28
Jesse Vogt

MySQL stocke les informations utilisateur dans sa propre base de données. Le nom de la base de données est MySQL. Dans cette base de données, les informations utilisateur se trouvent dans une table, un ensemble de données nommé user. Si vous voulez voir quels utilisateurs sont configurés dans la table des utilisateurs 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 |
|                  | %         |
+------------------+-----------+
25
VPK
SELECT * FROM mysql.user;

C'est une grande table, vous voudrez peut-être être plus sélectif sur les champs que vous choisissez. 

20
Etzeitet

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

select User from mysql.user;

+------+
| User |
+------+
| amon |
| root |
| root |
+------+
17
sandip divekar

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 ne montrait aucune permission pour un utilisateur lorsqu'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...
15
Brad Dre

Peter et Jesse ont raison, mais assurez-vous d’abord de sélectionner la base de données mysql.

use mysql;

select User from mysql.user;

ça devrait faire l'affaire

11
Armin Nehzat

J'utilise ceci pour trier les utilisateurs, donc les hôtes autorisés sont plus faciles à repérer:

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

Ceci affiche la liste des utilisateurs uniques:

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

L’exécution de cette commande sur linux Prompt demandera d’abord le mot de passe de l’utilisateur root mysql. En fournissant le mot de passe correct, tous les utilisateurs de la base de données seront imprimés dans le fichier texte.

4
Mian Asbat Ahmad

J'ai trouvé le sien 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;
3
hi-zir
SELECT User FROM mysql.user;

utiliser la requête ci-dessus pour obtenir les utilisateurs de Mysql

0
Arun Karnawat