Android

Comment afficher / lister les utilisateurs dans mysql

05 - Afficher les infos de l'utilisateur connecté

05 - Afficher les infos de l'utilisateur connecté

Table des matières:

Anonim

Avez-vous déjà eu besoin d'obtenir une liste de tous les utilisateurs de votre serveur MySQL? Il existe des commandes pour afficher les bases de données et les tables, mais il n'y a pas de commande MySQL show users .

Ce didacticiel explique comment répertorier tous les comptes d'utilisateurs d'un serveur de base de données MySQL via la ligne de commande. Nous allons également vous montrer comment savoir quels utilisateurs ont accès à une base de données donnée.

Avant que tu commences

Nous supposons que vous avez déjà un serveur MySQL ou MariaDB installé sur votre système.

Toutes les commandes sont exécutées à l'intérieur du shell MySQL en tant qu'utilisateur root. Pour accéder au shell MySQL, tapez la commande suivante et entrez votre mot de passe d'utilisateur racine MySQL lorsque vous y êtes invité:

mysql -u root -p Si vous avez oublié votre mot de passe root MySQL, vous pouvez le réinitialiser en suivant ces instructions.

Afficher tous les utilisateurs MySQL

MySQL stocke des informations sur les utilisateurs dans une table nommée user dans la base de données mysql .

Pour obtenir une liste de tous les comptes d'utilisateurs MySQL, utilisez l' SELECT pour récupérer toutes les lignes de la table mysql.users :

SELECT User, Host FROM mysql.user;

La sortie devrait ressembler à ci-dessous:

+------------------+-----------+ | user | host | +------------------+-----------+ | root | localhost | | luke | % | | yoda | % | | jabba | 10.10.0.6 | | jabba | 10.10.0.9 | | chewbacca | localhost | | leia | localhost | | han | localhost | +------------------+-----------+ 8 rows in set (0.00 sec)

La commande ci-dessus n'affiche que deux colonnes de la table mysql.user ( User et Host ), cette table contient plus de 40 colonnes telles que Password de Password , Select_priv , Update_priv , etc.

Un compte d'utilisateur dans MySQL se compose de deux parties: un nom d'utilisateur et un nom d'hôte.

Utilisez le desc mysql.user; pour afficher des informations sur les colonnes du tableau. Une fois que vous connaissez le nom de la colonne, vous pouvez exécuter une requête sur les données sélectionnées.

Par exemple, pour obtenir une liste de tous les comptes d'utilisateurs MySQL, y compris des informations sur le mot de passe et s'il est actif ou expiré, vous devez utiliser la requête suivante:

SELECT User, Host, Password, password_expired FROM mysql.user;

+----------------+-----------+-------------------------------------------+------------------+ | User | Host | Password | password_expired | +----------------+-----------+-------------------------------------------+------------------+ | root | localhost | | N | | luke | % | *ADC3B5B27617732CD6320A2DA976258E149A7EC8 | N | | yoda | % | *9550E004046348198A143A115550E1262209FB6F | N | | jabba | 10.10.0.6 | *F91C86B486B945C083B61A05FF6E197560D187EC | Y | | jabba | 10.10.0.9 | | Y | | chewbacca | localhost | *17F2B1E48029294841AD66772BEBB7E6E6A005AF | N | | leia | localhost | *74409C8DB55AC1A6829D801915981C46EDBFC64A | N | | han | localhost | *7B3022FCAEC3534CE67C68322D8AF0C240D95745 | N | +----------------+-----------+-------------------------------------------+------------------+ 8 rows in set (0.00 sec)

Afficher les utilisateurs ayant accès à une base de données particulière

Les informations sur les privilèges au niveau de la base de données sont stockées dans la table mysql.db .

Vous pouvez interroger la table pour savoir quels utilisateurs ont accès à une base de données donnée et le niveau des privilèges.

Par exemple, pour obtenir une liste de tous les utilisateurs qui ont un certain accès à la base de données nommée db_name vous devez utiliser la requête suivante:

SELECT * FROM mysql.db WHERE Db = 'db_name'\G;

*************************** 1. row *************************** Host: localhost Db: db_name User: db_user Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Execute_priv: Y Event_priv: Y Trigger_priv: Y 1 row in set (0.00 sec)

Pour récupérer des informations uniquement sur les comptes d'utilisateurs qui ont accès à une base de données donnée, sans afficher les privilèges, utilisez:

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+---------+-----------+---------+ | db | host | user | +---------+-----------+---------+ | db_name | localhost | db_user | +---------+-----------+---------+

La requête suivante vous montrera des informations sur toutes les bases de données et les utilisateurs associés:

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+------------------+-----------+-----------+ | db | host | user | +------------------+-----------+-----------+ | db_name | localhost | db_user | | ghost_production | localhost | chewbacca | | blog_db | localhost | leia | | linuxize | localhost | han | +------------------+-----------+-----------+

Conclusion

Dans ce tutoriel, nous avons montré comment obtenir une liste de tous les utilisateurs MySQL et savoir quels utilisateurs ont accès à une base de données particulière.

N'hésitez pas à laisser un commentaire si vous avez des questions.

mysql mariadb