MySQL obtient la liste des comptes d'utilisateurs

MySQL obtient la liste des comptes d'utilisateurs

En tant qu'administrateur de la base de données, vous rencontrerez des cas où vous devez connaître les utilisateurs dans un serveur MySQL. Cela vous permettra de savoir quels utilisateurs peuvent effectuer des tâches spécifiques et gérer leurs autorisations.

Ce tutoriel explorera la méthode de récupération des utilisateurs disponibles dans un serveur MySQL.

Exigences

Avant de commencer ce tutoriel, nous supposons que vous avez:

  1. La dernière version de MySQL Server installée sur votre système.
  2. Accès à la session de shell MySQL.

Étape 1 - Connectez-vous à MySQL

Vous accéderez à votre shell MySQL pour afficher et gérer les utilisateurs sur votre serveur MySQL.

Syntaxe de commande:

$ mysql -u -p

Remplacez le nom d'utilisateur par l'utilisateur cible dans lequel vous souhaitez vous connecter.

Par exemple, en tant que racine, exécutez:

$ mysql -u root -p

Entrez le mot de passe du nom d'utilisateur. Une fois authentifié avec succès, vous devez tomber dans le shell SQL comme indiqué:

Ici, vous pouvez commencer à exécuter des commandes SQL et voir la sortie résultante.

Listing des utilisateurs dans MySQL

Malheureusement, MySQL ne fournit pas une commande Native Show Users que nous pouvons utiliser. Cela signifie que nous devons jouer avec la façon dont MySQL stocke les informations.

Par exemple, MySQL utilise le mysql.Table utilisateur pour stocker les informations utilisateur. Nous pouvons ensuite utiliser les informations stockées dans ce tableau pour récupérer diverses informations.

MySQL montre tous les utilisateurs

Commençons par discuter de comment récupérer tous les utilisateurs. Exécutez la requête:

SÉLECTIONNER
utilisateur
DEPUIS
mysql.utilisateur;

La commande récupérera la colonne utilisateur du mysql.Tableau utilisateur et renvoyez les résultats comme indiqué:

À partir de la sortie ci-dessus, nous pouvons voir divers utilisateurs tels que Root, MySQL.sys, mysql.session, etc.

N'oubliez pas que la commande ci-dessus peut vous obliger à modifier les bases de données. Si vous obtenez la «requête 1: table» mysql.Erreur «n'existe pas», exécutez la commande ci-dessous pour changer de données.

> Utilisez MySQL

Une fois que vous avez obtenu la liste des utilisateurs sur le serveur, vous pouvez recueillir des informations sur l'utilisateur à l'aide de commandes telles que DESC.

Afficher les utilisateurs avec une session active

Nous pouvons également obtenir une liste d'utilisateurs avec des sessions actives à l'aide de la base de données Information_Schema. Cette base de données stocke les informations sur le serveur et les sessions actuelles.

Exécuter la commande:

La commande ci-dessus va récupérer le nom d'utilisateur, l'hôte et la base de données de la table ProcessList. Cela montre le nom d'utilisateur actuel, l'hôte à partir duquel le client se connecte et la base de données à laquelle il s'est connecté.

Un exemple de sortie est comme indiqué:

À partir de la sortie ci-dessus, nous pouvons voir qu'il y a actuellement trois utilisateurs connectés. N'oubliez pas que le même nom d'utilisateur mais un hôte différent est traité comme un nom d'utilisateur différent.

Afficher l'utilisateur actuel

Parfois, vous devrez peut-être recueillir des informations rapides sur l'utilisateur actuel. Heureusement, MySQL a une fonction utilisateur () qui renvoie l'utilisateur actuellement connecté.

Un exemple est comme indiqué:

SÉLECTIONNER
utilisateur();

La commande doit renvoyer les informations utilisateur actuelles comme:

Obtenez des utilisations avec accès à une base de données spécifique

Supposons que vous souhaitiez déterminer le nom d'utilisateur avec l'accès à une DB cible? Vous pouvez utiliser la table DB et le filtre pour ce nom d'utilisateur particulier.

Prenez l'illustration du code ci-dessous:

SÉLECTIONNER
*
DEPUIS
mysql.db

Db = 'sys' \ g;

La commande ci-dessus renverra l'utilisateur avec tout accès à la base de données SYS. N'hésitez pas à remplacer SYS par le nom de la base de données que vous souhaitez évaluer.

La commande renvoie une sortie comme indiqué:

*************************** 1. ligne ***************************
Hôte: localhost
Db: sys
Utilisateur: MySQL.système
Select_priv: n
Insert_priv: n
Update_priv: n
Delete_priv: n
Create_priv: n
Drop_priv: n
Grant_priv: n
Références_priv: n
Index_priv: n
Alter_priv: n
Create_tmp_table_priv: n
Lock_tables_priv: n
Create_view_priv: n
Show_view_priv: n
Create_routine_priv: n
Alter_routine_priv: n
EXECUTE_PRIV: n
Event_priv: n
Trigger_priv: y
1 ligne en jeu (0.00 sec)

De la sortie ci-dessus, nous pouvons voir que le mysql.L'utilisateur SYS a un privilège de déclenchement sur la base de données.

Conclusion

Comme illustré dans ce tutoriel, nous pouvons utiliser diverses tables et bases de données MySQL pour récupérer des informations sur les utilisateurs. Cette fonctionnalité puissante vous permet de créer des procédures et d'autres types définis par l'utilisateur pour recueillir des informations utilisateur.