Créer un utilisateur MySQL et accorder des privilèges

Introduction

Si vous avez été participé à un développement Web ou à un développement d’application, vous avez peut-être entendu parler de bases de données. Les bases de données sont comme des magasins de données virtuelles, nécessaires à la construction de certaines applications Web. Elles sont utilisées pour stocker les détails de l’utilisateur, tels que le nom d’utilisateur, le mot de passe, les adresses mail, etc. Généralement, toute information que vous souhaitez conserver pour une utilisation ultérieure peut être stockée dans une base de données.

Bien sûr, les données que vous stockez doivent avoir un semblant d’ordre. C’est là que les systèmes de gestion de base de données entrent en jeu. Ces systèmes sont utilisés pour communiquer avec la base de données et permettent aux développeurs de structurer, stocker, décharger et modifier des données.

MySQL est l’un de ces systèmes de gestion de base de données. C’est l’un des plus populaires, en raison de sa facilité d’utilisation et de son soutien communautaire. En fait, son adaptabilité a même attiré des gros noms comme Facebook et Twitter, qui l’utilisent dans une certaine mesure.

Dans ce tutoriel, nous allons voir les bases de MySQL et apprendre à créer un utilisateur dans MySQL. Nous allons également apprendre à accorder des privilèges aux utilisateurs MySQL. Nous utiliserons la ligne de commande pour ce tutoriel.

Ce dont vous aurez besoin

Avant de commencer ce guide, vous aurez besoin des éléments suivants:

Étape 1 – Création d’un utilisateur MySQL et octroi de tous les privilèges

Comme vous commencez à utiliser MySQL, vous allez recevoir un nom d’utilisateur et un mot de passe. Ces informations d’identification initiales vous accordent “l’accès root”. L’utilisateur root a un accès complet à toutes les bases de données et tables dans ces bases de données.

Mais souvent, vous devez donner accès à la base de données à quelqu’un d’autre sans lui accorder un contrôle total. Par exemple, les entreprises qui embauchent des développeurs pour maintenir des bases de données, mais ne veulent pas leur donner la possibilité de supprimer ou de modifier des informations sensibles, leur donnent souvent des informations d’identification d’un utilisateur non root. De cette façon, l’entreprise peut garder le contrôle de ce que ses développeurs peuvent et ne peuvent pas faire avec les données.

Créer un nouvel utilisateur est assez simple dans MySQL. Nous vous montrerons comment créer un nouvel utilisateur MySQL et comment vous accorder tous les privilèges pour votre base de données. Il n’est pas judicieux, dans la pratique, de donner plein pouvoir à un utilisateur non root, mais c’est un bon point d’introduction aux privilèges utilisateur. Pour créer un nouvel utilisateur, procédez comme suit:

    1. Accédez à la ligne de commande et entrez dans le serveur MySQL
      mysql

      Si vous souhaitez exécuter ces commandes sur votre serveur VPS, vous devez préalablement établir la connexion SSH avec celui-ci.

    2. Exécutez la commande suivante:
      CREATE USER 'non-root'@'localhost' IDENTIFIED BY '123';

      Dans cette commande, ‘non root’ est le nom que nous avons donné à notre nouvel utilisateur. Et ‘123’ est le mot de passe de cet utilisateur. Vous pouvez remplacer ces valeurs par les vôtres, à l’intérieur des guillemets.

    3. La simple création de ce nouvel utilisateur ne suffit pas. Vous devez lui accorder des privilèges. Pour accorder à l’utilisateur récemment créé tous les privilèges pour la base de données, exécutez la commande suivante:
GRANT ALL PRIVILEGES ON * . * TO 'non-root'@'localhost';
    1. Pour que les changements prennent effet, appliquez immédiatement les privilèges en tapant la commande suivante:
FLUSH PRIVILEGES;

Et c’est tout! Votre nouvel utilisateur a le même accès à la base de données que l’utilisateur root.

Étape 2 – Octroi de privilèges spécifiques pour un utilisateur MySQL

Comme indiqué précédemment, il n’est pas intelligent d’accorder l’accès root à un utilisateur non root. La plupart du temps, vous voudrez donner différents niveaux d’accès à différents types d’utilisateurs. MySQL rend cela simple par la commande suivante:

GRANT [permission type] ON [database name].[table “” not found /]
TO ‘non-root’@'localhost’;

Il vous suffit de remplacer la valeur “type de permission” par le type de permission que vous souhaitez accorder au nouvel utilisateur. Vous devez également spécifier les noms de base de données et de table, ce qui donne à l’utilisateur root le contrôle total des privilèges ainsi octroyés. Dans l’exemple ci-dessus, «non-root» est le nom d’utilisateur, vous êtes donc libre de le remplacer par votre choix.
MySQL possède quelques types de permission, dont certains sont décrits ci-dessous:

  • CREATE – Permet aux utilisateurs de créer des bases de données/tableaux
  • SELECT – Permet aux utilisateurs de récupérer 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 de supprimer les entrées de la tableau
  • DROP – Permet aux utilisateurs de supprimer des bases de données/tableaux entiers

Pour utiliser l’une de ces options, remplacez simplement [type de permission] par le mot-clé approprié. Pour appliquer plusieurs privilèges, séparez-les avec une commande comme celle-ci. Par exemple, nous pouvons assigner les privilèges CREATE et SELECT à notre utilisateur MySQL non root avec cette commande

GRANT CREATE, SELECT ON * . * TO 'non-root'@'localhost';

Bien sûr, vous pourriez faire face à une situation où vous devez révoquer certains privilèges d’un utilisateur. Vous pouvez le faire en utilisant la commande suivante:

REVOKE [permission type] ON [database name].[table “” not found /]
FROM ‘non-root’@‘localhost’;

Par exemple, pour révoquer tous les privilèges de notre utilisateur non-root, nous devrions utiliser:

REVOKE ALL PRIVILEGES ON *.* FROM 'non-root'@'localhost';

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

DROP USER ‘non-root’@‘localhost’;

N’oubliez pas, pour exécuter l’une de ces commandes, vous devez avoir un accès root. De plus, assurez-vous d’exécuter FLUSH PRIVILEGES après toute modification apportée aux privilèges.

Étape 3 – Réactiver les privilèges Grant_priv sur un utilisateur

Connectez-vous à votre phpmyadmin via votre url

Rendez-vous sur la base : mysql     –>     table: user      –>    colonne: Grant_priv    et passez la valeur à “Y” sur l’utilisateur choisi

Conclusion

Dans ce tutoriel, nous vous avons appris quelques principes fondamentaux des privilèges MySQL et comment créer un nouvel utilisateur MySQL. Plus précisément, nous vous avons appris:

  • Création d’utilisateurs avec tous les privilèges
  • Accorder des privilèges spécifiques aux utilisateurs, ainsi que révoquer ces privilèges et supprimer les utilisateurs

L’octroi de privilèges peut sembler être une corvée lors du développement d’applications Web, mais c’est une mesure de sécurité vitale pour la gestion et la maintenance de la base de données. Presque toutes les applications modernes reposent sur des bases de données, ce qui rend essentiel pour les développeurs d’apprendre à accorder / révoquer des privilèges de base de données MySQL.

 

Sources

Laisser un commentaire