Recherche de site Web

Ajouter un nouvel utilisateur MySQL en toute simplicité : un guide complet


Ce tutoriel vous montrera comment ajouter un nouvel utilisateur à MySQL et accorder différents types de privilèges à une base de données MySQL.

Si vous êtes nouveau sur MySQL ou si vous avez besoin d'un rappel sur la façon d'ajouter un nouvel utilisateur et d'accorder des privilèges d'accès, vous êtes au bon endroit. Le serveur MySQL vous permet de créer de nombreux comptes d'utilisateurs et d'accorder les privilèges appropriés afin que les utilisateurs puissent accéder et gérer les bases de données, garantissant que seuls les utilisateurs autorisés peuvent effectuer des actions spécifiques.

Ainsi, une fois MySQL installé sur le serveur, vous devez créer une base de données et des comptes d’utilisateurs supplémentaires. Ce guide vous guidera dans l'ajout d'un nouvel utilisateur MySQL et en lui accordant les privilèges d'accès nécessaires.

Pour exécuter les commandes présentées dans ce guide, vous devez d'abord vous connecter au serveur MySQL avec le compte root MySQL.

mysql -u root -p

Comment créer un nouvel utilisateur MySQL

L'instruction CREATE USER crée un nouvel utilisateur dans le serveur de base de données MySQL. Voici la syntaxe de base de l'instruction :

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

Remplacez le nom d'utilisateur et le mot de passe par le nom d'utilisateur et le mot de passe souhaités dans la syntaxe ci-dessus.

Définissez le hostname sur localhost si vous souhaitez que l'utilisateur puisse se connecter au serveur MySQL uniquement à partir de l'hôte local, ce qui signifie « cet ordinateur ». Si vous souhaitez que l'utilisateur puisse se connecter à partir de n'importe quel hôte, utilisez le caractère générique % comme nom d'hôte.

Par exemple, nous allons créer un utilisateur avec le nom james et le mot de passe MyStrongPass123 à l'aide de la commande suivante :

CREATE USER 'james'@'localhost' IDENTIFIED BY 'MyStrongPass123';

Cependant, cet utilisateur ne pourra travailler avec les bases de données MySQL qu'une fois qu'il aura obtenu des privilèges supplémentaires.

Comment accorder des privilèges à un utilisateur MySQL

Après avoir créé avec succès le nouvel utilisateur, nous pouvons accorder des privilèges à ce nouvel utilisateur. Dans la plupart des cas, vous accorderez des privilèges aux utilisateurs MySQL en fonction de la base de données particulière à laquelle le compte doit avoir accès.

Plusieurs types de privilèges peuvent être accordés à un compte utilisateur. Vous pouvez trouver une liste complète des privilèges pris en charge par MySQL ici.

  • TOUS LES PRIVILÈGES – Accorde tous les privilèges à un compte utilisateur.
  • ALTER – L'utilisateur peut modifier la structure d'une table ou d'une base de données.
  • CREATE – Le compte utilisateur est autorisé à créer des bases de données et des tables.
  • DROP – Le compte utilisateur est autorisé à supprimer des bases de données et des tables.
  • DELETE – Le compte utilisateur est autorisé à supprimer des lignes d'une table spécifique.
  • INSERT – Le compte utilisateur est autorisé à insérer des lignes dans un tableau spécifique.
  • SELECT – Le compte utilisateur est autorisé à lire une base de données.
  • UPDATE – Le compte utilisateur est autorisé à mettre à jour les lignes du tableau.

Pour fournir à un utilisateur l'accès à la base de données MySQL et lui accorder des autorisations, vous devez généralement utiliser l'instruction GRANT suivante :

GRANT permission_type ON privilege_level TO 'username'@'hostname'; 

Par exemple, pour accorder tous les privilèges à l'utilisateur james sur la base de données jamesdb, utilisez la commande suivante :

GRANT ALL PRIVILEGES ON jamesdb.* TO 'james'@'localhost';

Cependant, tapez ce qui suit pour accorder uniquement les privilèges SELECT et INSERT à l'utilisateur james sur la base de données jamesdb :

GRANT SELECT, INSERT ON jamesdb.* TO 'james'@'localhost';

De plus, si vous souhaitez accorder l'accès non pas à l'intégralité de la base de données mais uniquement à une seule table, vous pouvez y parvenir comme indiqué ci-dessous.

Par exemple, accordons les privilèges SELECT à l'utilisateur james uniquement sur la table salaires de la base de données employés :

GRANT SELECT ON employees.salaries TO 'james'@'localhost';

Création d'un nouveau superutilisateur MySQL

Vous devrez peut-être créer un superutilisateur avec des autorisations similaires à celles de l'utilisateur root MySQL dans certaines situations.

Ainsi, pour accorder à un utilisateur les mêmes privilèges que l'utilisateur root MySQL, utilisez la commande suivante, qui donne des privilèges globaux à l'utilisateur james se connectant via localhost :

GRANT ALL ON *.* TO 'james'@'localhost' WITH GRANT OPTION;

Modifier le mot de passe d'un compte utilisateur MySQL

Supposons que vous souhaitiez changer le mot de passe de l'utilisateur james qui se connecte depuis le localhost vers NewStrongPass123 ; vous devez exécuter l'instruction SQL suivante :

ALTER USER 'james'@'localhost' IDENTIFIED BY 'NewStrongPass123';

Dans l'instruction SQL ci-dessus, assurez-vous de remplacer james par l'utilisateur de votre base de données et localhost par l'hôte de l'utilisateur.

De plus, si vous avez oublié votre mot de passe root MySQL et que vous ne savez pas comment le réinitialiser, veuillez consulter notre guide sur le sujet.

Afficher les Privilèges pour un utilisateur dans MySQL

Dans MySQL, vous pouvez utiliser la commande SHOW GRANTS pour afficher toutes les informations d'octroi pour un utilisateur. Prenons quelques exemples.

L'instruction suivante utilise l'instruction SHOW GRANTS pour afficher les privilèges accordés à l'utilisateur actuel :

SHOW GRANTS;

Pour afficher les subventions d'un utilisateur MySQL, vous pouvez utiliser SHOW GRANTS tout en spécifiant le nom d'utilisateur :

SHOW GRANTS FOR 'james'@'localhost';

Révoquer les privilèges d'un compte utilisateur MySQL

La syntaxe pour révoquer un ou plusieurs privilèges d'un compte utilisateur est presque identique à celle utilisée pour l'octroi de privilèges.

Si vous devez révoquer les privilèges de l'utilisateur james sur une base de données jamesdb, appliquez la syntaxe similaire à celle que vous avez utilisée lors de l'octroi des autorisations :

REVOKE ALL PRIVILEGES ON jamesdb.* FROM 'james'@'localhost';

Supprimer un utilisateur de MySQL

Au lieu de révoquer les privilèges, vous souhaiterez peut-être supprimer cet utilisateur. Ainsi, vous pouvez supprimer un utilisateur de base de données à l'aide de la commande suivante :

DROP USER 'james'@'localhost';

La commande ci-dessus supprimera l'utilisateur james et tous ses privilèges.

Enregistrer vos modifications

Comme dernière étape, utilisez la commande FLUSH PRIVILEGES chaque fois que vous mettez à jour ou modifiez l'autorisation.

FLUSH PRIVILEGES;

Conclusion

L'ajout d'un nouvel utilisateur MySQL et l'octroi de privilèges d'accès sont essentiels pour gérer votre base de données et garantir que seuls les utilisateurs autorisés peuvent effectuer des actions spécifiques. Après avoir terminé ce didacticiel, vous devez savoir comment ajouter de nouveaux utilisateurs et leur accorder diverses autorisations dans une base de données MySQL.

Utilisez toujours des mots de passe forts et uniques pour vos utilisateurs afin d'augmenter la sécurité et envisagez de révoquer ou de modifier les autorisations si nécessaire. Avec un peu de pratique, vous deviendrez un pro dans l’ajout et la gestion d’utilisateurs MySQL en un rien de temps.

Si vous avez des questions ou des commentaires, n'hésitez pas à commenter.

Articles connexes: