Comment lister les utilisateurs MySQL en utilisant Linux
Le serveur de base de données MySQL est souvent le premier choix des développeurs et de tous ceux qui souhaitent tester un langage de requête structuré. MySQL comprend de nombreuses fonctionnalités qui le rendent fiable, sécurisé et efficace.
Il existe cependant des moyens d’améliorer encore la sécurité du serveur MySQL. L’une d’entre elles consiste à créer des utilisateurs de base de données à accès restreint.
Ce tutoriel explique pourquoi vous devez créer des comptes utilisateurs MySQL séparés et comment utiliser la commande MySQL SHOW USERS pour lister les utilisateurs MySQL sur votre VPS Linux.
Sommaire
Pourquoi créer des utilisateurs dans le serveur MySQL
Lorsque les utilisateurs ou les administrateurs de bases de données installent MySQL, le premier utilisateur créé est l’utilisateur root, c’est-à-dire l’administrateur de MySQL. L’utilisateur root a le droit de tout faire sur la base de données MySQL.
Bien que le fait de disposer de toutes les autorisations puisse sembler avantageux, cela comporte ses propres failles de sécurité, et il est dangereux de partager l’utilisateur racine entre plusieurs personnes. Les pirates tentent souvent de se connecter en tant qu’utilisateur root et de voler les informations hébergées, voire de détruire l’ensemble du serveur MySQL ainsi que ses données.
Ainsi, les administrateurs système créent des utilisateurs MySQL disposant d’autorisations spécifiques sur certaines bases de données. En d’autres termes, si les informations d’identification d’un compte sont compromises, l’impact sera minime et gérable.
Comment afficher les utilisateurs dans une base de données MySQL sous Linux
Contrairement aux commandes SHOW DATABASES ou SHOW TABLES qui affichent immédiatement toutes les bases de données ou tables, la commande SHOW USERS n’existe pas dans MySQL. Même si cette commande n’existe pas, les utilisateurs peuvent utiliser une requête MySQL pour obtenir la liste complète des utilisateurs d’un serveur de base de données MySQL donné.
Suivez les étapes ci-dessous pour plus d’informations.
1. Connectez-vous en tant qu’utilisateur root de MySQL
Commencez par vous connecter au VPS via SSH en tant qu’utilisateur root. Une fois que c’est fait, entrez dans la ligne de commande MySQL avec cette commande :
sudo mysql -u root -p
Saisissez ensuite le mot de passe root de MySQL.
Important ! Gardez à l’esprit que les mots de passe du système et de la racine de MySQL sont distincts et peuvent différer.
Une fois que vous êtes dans la console MySQL en tant qu’utilisateur root, vous pouvez exécuter des requêtes pour afficher les autres utilisateurs de MySQL.
2. Utiliser la requête MySQL SHOW USERS
Utilisez la requête suivante pour afficher les utilisateurs MySQL créés dans le serveur de base de données :
SELECT user FROM mysql.user;
Vous verrez alors la liste de tous les utilisateurs qui ont été créés dans MySQL.
Notez qu’il peut y avoir des utilisateurs en double. En effet, MySQL filtre l’accès à un serveur en fonction de l’adresse IP d’où il provient.
Vous pouvez également ajouter une colonne “host” pour obtenir encore plus d’informations à l’aide de la commande suivante :
SELECT user,host FROM mysql.user;
Vous pourrez ainsi voir les utilisateurs de MySQL et l’hôte ou l’adresse IP auquel ils ont le droit d’accéder. Dans notre cas, tous les utilisateurs proviennent d’une base de données locale :
3. Voir plus d’informations sur l’utilisateur MySQL (optionnel)
Si vous avez besoin de plus d’informations sur les utilisateurs de MySQL, la commande de recherche peut être étendue à l’aide des requêtes MySQL.
Par exemple, la commande suivante permet d’imprimer toutes les informations possibles du tableau des utilisateurs :
SELECT * FROM mysql.user;
Cependant, ces résultats peuvent sembler trop compliqués à comprendre. Il est donc recommandé de restreindre la recherche en utilisant des requêtes plus spécifiques.
Voici quelques-uns des cas d’utilisation les plus courants :
Aperçu des colonnes du tableau
La requête suivante permet d’afficher un aperçu des colonnes du tableau de l’utilisateur. Elle est particulièrement utile si les utilisateurs souhaitent vérifier les informations relatives à une table spécifique.
DESC mysql.user
Afficher uniquement les noms d’utilisateur uniques
Pour éviter les noms d’utilisateur répétitifs, la requête suivante peut être utilisée :
SELECT DISTINCT user FROM mysql.user;
Expiration du mot de passe et statut de verrouillage du compte
Pour vérifier l’état d’expiration du mot de passe et l’état de verrouillage du compte, utilisez cette requête :
SELECT user, account_locked, password_expired FROM mysql.user;
Afficher les utilisateurs actuels et les utilisateurs connectés actuels
L’utilisateur actuel peut être affiché à l’aide de la requête suivante :
SELECT current_user();
Si vous avez besoin de plus d’informations, vous pouvez modifier la requête pour afficher les utilisateurs actuellement connectés et leur état. Cette commande est utile pour trouver les utilisateurs inactifs qui utilisent trop de ressources.
SELECT user,host, command FROM information_schema.processlist;
Conclusion
L’administration d’un serveur de base de données peut être une tâche difficile. C’est pourquoi les administrateurs de bases de données doivent faire preuve de prudence lorsqu’ils créent et gèrent les autorisations des utilisateurs.
La commande MySQL SHOW USERS permet aux administrateurs de visualiser les utilisateurs de MySQL ainsi que d’autres informations importantes.
Pour récapituler, nous avons couvert les bases de l’affichage des utilisateurs de MySQL liés à une base de données et nous avons appris à :
- Lister tous les utilisateurs créés dans une base de données MySQL donnée
- Prévisualiser les colonnes d’une table de base de données MySQL
- Afficher les noms d’utilisateur uniques dans un tableau
- Vérifier l’expiration du mot de passe et l’état de verrouillage du compte
- Afficher les utilisateurs actuels et connectés dans une base de données MySQL
Nous espérons que ce tutoriel vous a été utile. Si vous avez des questions ou des remarques supplémentaires, faites-le nous savoir dans la section des commentaires ci-dessous.
Lister les utilisateurs mysql – FAQ
Comment puis-je voir tous les utilisateurs et mots de passe MySQL ?
Effectuez la requête SQL suivante :
mysql> select user, password, host from mysql. user
Cette requête affiche une liste d’utilisateurs, leurs noms d’utilisateur, leurs mots de passe et l’hôte de la base de données
Comment afficher les utilisateurs dans MySQL MariaDB ?
Connectez-vous à votre serveur MariaDB/MySQL avec le client mysql en tant qu’utilisateur root. Tapez la requête suivante :
$ mysql -u root -p
Ou
$ mysql -u root -h localhost -p mysql
Où sont stockés les utilisateurs dans MySQL ?
MySQL stocke les utilisateurs dans la table user de la base de données.