Création et gestion des utilisateurs

Dans MySQL, chaque utilisateur est associé à un nom d'utilisateur et un hôte (par exemple, user@localhost ou user@'%'). Un bon contrôle des utilisateurs permet de restreindre l'accès aux données en fonction de leur rôle ou de leur niveau d'autorisation.

4.1.1 Créer un utilisateur :

La commande CREATE USER permet de créer un nouvel utilisateur dans MySQL. Chaque utilisateur peut être défini avec un mot de passe sécurisé.

Syntaxe de base :

CREATE USER 'nom_utilisateur'@'hote' IDENTIFIED BY 'mot_de_passe';

Exemple 1 :

CREATE USER 'jean'@'localhost' IDENTIFIED BY 'MotDePasse123!';

Cela crée un utilisateur jean qui ne pourra se connecter qu'à partir du serveur local (localhost), avec le mot de passe MotDePasse123!.

Exemple 2 : Créer un utilisateur accessible depuis n'importe quelle machine

CREATE USER 'marie'@'%' IDENTIFIED BY 'SecurePass2024!';

Cela crée un utilisateur marie qui peut se connecter à MySQL depuis n'importe quel hôte (% signifie tous les hôtes).

4.1.2 Modifier un utilisateur :

L'utilisateur peut être modifié pour changer le mot de passe ou d'autres propriétés.

Exemple : Modifier le mot de passe de l'utilisateur

ALTER USER 'jean'@'localhost' IDENTIFIED BY 'NouveauMotDePasse!';

Cela modifie le mot de passe de l'utilisateur jean.

4.1.3 Supprimer un utilisateur :

Si un utilisateur n'est plus nécessaire, vous pouvez le supprimer avec la commande DROP USER.

Exemple :

DROP USER 'jean'@'localhost';

Cela supprime l'utilisateur jean qui se connecte depuis localhost.

4.1.4 Afficher les utilisateurs existants

Il est souvent utile de lister les utilisateurs existants pour vérifier leur configuration, leurs hôtes, ou pour effectuer des audits de sécurité.

1. Afficher tous les utilisateurs :

Vous pouvez utiliser la requête suivante pour afficher la liste de tous les utilisateurs définis dans MySQL :

SELECT User, Host FROM mysql.user;

Cela retourne une liste des utilisateurs ainsi que les hôtes à partir desquels ils sont autorisés à se connecter.

Exemple de résultat :

UserHost

root

localhost

jean

localhost

marie

%

2. Afficher les informations détaillées des utilisateurs :

Si vous voulez des informations plus détaillées sur chaque utilisateur, y compris les méthodes d'authentification et d'autres paramètres, utilisez cette commande :

SELECT * FROM mysql.user;

Remarque : Cette requête retourne un grand nombre de colonnes, dont User, Host, plugin (le plugin d'authentification utilisé), ssl_type (si SSL est requis), et plus encore. C'est utile pour obtenir un aperçu complet des configurations des utilisateurs.

3. Afficher les privilèges spécifiques d’un utilisateur :

Pour afficher les privilèges d'un utilisateur spécifique, utilisez la commande SHOW GRANTS :

SHOW GRANTS FOR 'nom_utilisateur'@'hote';

Exemple :

SHOW GRANTS FOR 'jean'@'localhost';

Cela retourne les privilèges associés à l'utilisateur jean qui se connecte depuis localhost.

4. Filtrer les utilisateurs par hôte spécifique :

Vous pouvez aussi filtrer les utilisateurs qui peuvent se connecter depuis un hôte spécifique (par exemple, localhost ou %) :

SELECT User FROM mysql.user WHERE Host = 'localhost';

Last updated