Présentation
La fonction principale d'une base de données est de stocker des informations de manière structurée pour permettre un accès facile à ces informations. Avoir de nombreux utilisateurs autorisés à accéder et à travailler sur votre serveur MySQL peut devenir un problème de sécurité.
Un court ensemble de requêtes dans le client MySQL peut vous fournir des informations précieuses pour vous aider à prévenir les problèmes potentiels. Utilisez les commandes décrites dans ce didacticiel pour apprendre comment répertorier tous les comptes d'utilisateurs sur un serveur MySQL.
Prérequis
- Ligne de commande/fenêtre de terminal
- MySQL ou MariaDB installé
- Utilisateur avec sudo ou racine privilèges
Comment accéder à MySQL en tant que racine
Accéder au serveur MySQL en tant que root utilisateur en saisissant la commande suivante dans votre terminal :
sudo mysql --user=root mysql -p
ou :
sudo mysql -u root -p
Le -p
L'option n'est obligatoire que si vous avez un mot de passe prédéfini pour votre utilisateur root. Si aucun mot de passe n'est défini, utilisez la commande sans le -p
option.
La sortie ci-dessus montre que nous avons obtenu l'accès au client MySQL en tant que racine utilisateur.
Maintenant, vous pouvez exécuter une requête MySQL et récupérer des informations à partir de mysql.user base de données.
Comment afficher tous les utilisateurs MySQL
La commande suivante répertorie les noms d'utilisateur ayant accès au serveur :
SELECT user FROM mysql.user;
Cette commande demande à MySQL de créer une table. Le système récupère les informations de l'Utilisateur colonne dans mysql.user base de données.
La sortie de cet exemple montre un tableau avec quatre lignes :
La liste que nous avons reçue a une valeur limitée. Pour obtenir un aperçu plus détaillé des utilisateurs MySQL et de leurs autorisations, nous pouvons étendre les paramètres de recherche et ajouter des colonnes supplémentaires.
Comment lister mysql.user Champs de la base de données
Avant de développer la requête, listons les champs disponibles dans le mysql.user base de données. La commande suivante répertorie toutes les colonnes disponibles :
desc mysql.user;
Les options du Champ la colonne représente les informations que nous pouvons demander à mysql.user base de données.
Il est possible de combiner plusieurs options en une seule commande pour obtenir des informations détaillées sur l'utilisateur.
Comment afficher les informations utilisateur MySQL
La requête suivante fournit une table avec l'utilisateur , Hébergeur , et chaîne_authentification colonnes :
SELECT User, Host, authentication_string FROM mysql.user;
La requête ajoute deux colonnes supplémentaires à la colonne Utilisateur et fournit des informations précieuses telles que le mot de passe et le nom d'hôte de l'utilisateur.
Comment répertorier uniquement les utilisateurs MySQL uniques
Une autre option utile consiste à supprimer les noms d'utilisateur MySQL qui apparaissent sur plusieurs lignes. Pour afficher uniquement les noms d'utilisateur MySQL uniques, saisissez la commande suivante :
SELECT DISTINCT User FROM mysql.user;
La sortie supprime les lignes MySQL en double et affiche les noms d'utilisateur spécifiques une seule fois.
Afficher l'utilisateur MySQL actuel
Utilisez le user()
ou current_user()
fonction pour obtenir les détails de l'utilisateur MySQL actuel :
SELECT user();
Ou :
SELECT current_user();
Dans les deux cas, la sortie montre que l'utilisateur MySQL actuel est [email protected] .
Afficher les utilisateurs MySQL connectés
A tout moment, vous pouvez vérifier les utilisateurs qui sont actuellement connectés au serveur de base de données MySQL. Cette fonction fournit un aperçu inestimable lors de la surveillance de votre serveur MySQL pour une utilisation non autorisée.
Saisissez cette requête pour afficher la liste des utilisateurs MySQL actuellement connectés :
SELECT user, host,db, command FROM information_schema.processlist;
La sortie répertorie les utilisateurs connectés, la base de données et la commande en cours d'exécution.