Comment créer un utilisateur MySQL et accorder des privilèges

Voulez-vous comprendre les bases du fonctionnement de MySQL ? Cet article vous montrera comment créer un utilisateur dans MySQL. Vous découvrirez également plusieurs commandes permettant d’accorder des privilèges, de révoquer des privilèges et de supprimer des utilisateurs existants.

Qu’est-ce qu’une base de données MySQL ?

Pour comprendre MySQL, vous devez savoir ce qu’est une base de données. Il s’agit d’un espace de stockage virtuel dans lequel vous pouvez enregistrer les données nécessaires à la construction de sites et d’applications web.

La base de données MySQL peut stocker les détails des comptes d’utilisateurs, tels que les noms d’utilisateurs, les mots de passe, les adresses électroniques et tout type d’information que vous souhaitez conserver pour une utilisation ultérieure.

Toutefois, les données stockées doivent être classées dans un certain ordre. C’est pourquoi nous disposons de systèmes de gestion de bases de données. Ces outils sont utilisés pour communiquer avec la base de données et permettent aux développeurs de structurer, stocker, vider et modifier les données.

Conditions préalables pour créer un nouvel utilisateur MySQL

Avant de passer à la section suivante du tutoriel, assurez-vous que vous avez installé MySQL.

Conseil de pro

Nous utiliserons la ligne de commande pour accéder à notre VPS Linux en tant que root. Vous pouvez utiliser PuTTY (Windows) ou votre terminal (macOS, Linux) et vous connecter à l’aide de vos informations de connexion racine SSH fournies par votre fournisseur d’hébergement.

Comment créer un compte utilisateur MySQL et lui accorder tous les privilèges ?

Lorsque vous commencerez à utiliser MySQL, vous recevrez un nom d’utilisateur et un mot de passe. Ces informations d’identification initiales vous donneront l’accès root ou le contrôle total de toutes vos bases de données et tables.

Cependant, il peut arriver que vous deviez donner l’accès à la base de données à quelqu’un d’autre sans lui accorder un contrôle total.

Par exemple, vous engagez des développeurs pour gérer vos bases de données, mais vous ne voulez pas leur donner la possibilité de supprimer ou de modifier des informations sensibles.

Dans ce cas, vous devez leur donner les informations d’identification d’un utilisateur non root. De cette manière, vous pouvez savoir ce que les développeurs peuvent ou ne peuvent pas faire avec vos données.

Dans cette partie, nous allons expliquer comment créer un compte d’utilisateur dans MySQL avec tous les privilèges sur votre base de données. D’un point de vue pratique, il n’est pas judicieux de donner le contrôle total à un utilisateur non root. Cependant, il s’agit d’un bon point de départ pour apprendre à connaître les privilèges des utilisateurs.

Pour créer un nouveau compte utilisateur dans MySQL, procédez comme suit :

  1. Accédez à la ligne de commande et entrez dans le serveur MySQL :
mysql
  1. Le script renvoie le résultat suivant, qui confirme que vous accédez à un serveur MySQL.
mysql>
  1. Ensuite, exécutez la commande suivante :
CREATE USER 'nouvel_utilisateur'@'localhost' IDENTIFIED BY 'motdepasse';
  1. nouvel_utilisateur est le nom que nous avons donné à notre nouveau compte utilisateur et la section IDENTIFIED BY ‘motdepasse’ définit un code d’accès pour cet utilisateur. Vous pouvez remplacer ces valeurs par les vôtres, entre guillemets.
  2. Afin d’accorder tous les privilèges de la base de données à un utilisateur nouvellement créé, exécutez la commande suivante :
GRANT ALL PRIVILEGES ON * . * TO 'nouvel_utilisateur'@'localhost';
  1. Pour que les changements prennent effet immédiatement, rétablissez ces privilèges en tapant la commande suivante :
FLUSH PRIVILEGES;

Une fois cela fait, votre nouveau compte utilisateur a le même accès à la base de données que le compte root.

Comment accorder des privilèges séparément à un utilisateur MySQL ?

Dans cette partie, nous allons expliquer comment accorder des privilèges séparément pour un compte d’utilisateur dans MySQL.

Lorsque vous indiquez le nom de la base de données et le nom de la table, séparez-les par un . (point) sans espace. Cela permettra à l’utilisateur root d’exercer un contrôle précis sur certaines données.

Remplacez également la valeur PERMISSION_TYPE par le type d’accès que vous souhaitez accorder à votre nouveau compte utilisateur.

Voici les commandes les plus utilisées dans MySQL :

  • CREATE – permet aux utilisateurs de créer une base de données ou une table
  • SELECT – permet aux utilisateurs d’extraire des données
  • INSERT – permet aux utilisateurs d’ajouter de nouvelles entrées dans les tableaux
  • UPDATE – permet aux utilisateurs de modifier les entrées existantes dans les tableaux
  • DELETE – permet aux utilisateurs d’effacer les entrées du tableau
  • DROP – permet aux utilisateurs de supprimer des tables entières de la base de données

Conseil de pro

L’utilisation du type de permission ALL PRIVILEGES, comme précédemment, permet d’obtenir toutes les autorisations énumérées ci-dessus.

Pour utiliser l’une de ces options, il suffit de remplacer PERMISSION_TYPE par le mot-clé approprié. Pour appliquer plusieurs privilèges, séparez-les par une virgule. Par exemple, nous pouvons attribuer les privilèges CREATE et SELECT à notre compte utilisateur MySQL non root à l’aide de cette commande :

GRANT CREATE, SELECT ON * . * TO 'user_name'@'localhost';

Il peut arriver que vous deviez révoquer les privilèges d’un utilisateur. Vous pouvez le faire en entrant :

REVOKE PERMISSION_TYPE ON database_name.table_name FROM ‘user_name’@‘localhost’;

Par exemple, pour retirer tous les privilèges à notre utilisateur non root, nous devrions utiliser :

REVOKE ALL PRIVILEGES ON * . * FROM 'user_name'@'localhost';

Enfin, vous pouvez supprimer entièrement un compte d’utilisateur existant en utilisant la commande suivante :

DROP USER ‘user_name’@‘localhost’;

Conseil de pro

N’oubliez pas que vous devez avoir les droits d’administrateur (root) pour exécuter l’une ou l’autre de ces commandes. Veillez à exécuter la commande FLUSH PRIVILEGES; après avoir effectué vos modifications.

Comment afficher les privilèges de compte d’un utilisateur MySQL ?

Pour connaître les privilèges déjà accordés à un utilisateur MySQL, vous pouvez utiliser la commande SHOW GRANTS :

SHOW GRANTS FOR 'user_name'@'localhost';

Le résultat ressemblera à ceci :

+---------------------------------------------------------------------------+
| Grants for user_name@localhost                                             |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user_name'@'localhost'                              |
| GRANT ALL PRIVILEGES ON 'database_name'.* TO 'user_name'@'localhost'.      |
| REVOKE ALL PRIVILEGES ON * . * FROM 'user_name'@'localhost';  |
+---------------------------------------------------------------------------+
3 rows in set (0.00 sec)

Conclusion

Une base de données est un élément essentiel de tout site web et de toute application web, car elle stocke toutes les données des utilisateurs. Pour la gérer et communiquer avec elle plus efficacement, vous aurez besoin d’un système de gestion de base de données. C’est pourquoi nous vous recommandons d’utiliser l’option la plus populaire et la plus recommandée – MySQL, en raison de sa fiabilité et de sa facilité d’utilisation.

Dans ce tutoriel, vous avez appris quelques commandes de base pour effectuer plusieurs tâches dans MySQL, y compris :

  • Comment créer un utilisateur MySQL et lui accorder tous les privilèges ?
  • Comment donner des privilèges spécifiques à un utilisateur, les révoquer et supprimer complètement un utilisateur MySQL ?
  • Comment voir quels privilèges un utilisateur MySQL possède déjà ?

Bonne chance, et n’hésitez pas à laisser un commentaire ci-dessous si vous avez des questions.

Author
L'auteur

Ismail

Ismail est un spécialiste du référencement et de la localisation chez Hostinger. Il est passionné par la technologie et le développement web et possède des années d'expérience dans le domaine informatique. Ses passe-temps incluent les jeux vidéo et le football.