Mysql
 sql >> Base de données >  >> RDS >> Mysql

Créer un utilisateur sur MySQL

Juste après avoir installé MySQL, vous aurez la root utilisateur disponible.

Il s'agit de l'utilisateur que vous pouvez utiliser pour essayer de voir si MySQL fonctionne, mais ce ne doit pas être l'utilisateur pour d'autres types d'utilisations.

Pourquoi? Parce qu'il est trop puissant .

Un grand pouvoir s'accompagne d'une grande responsabilité (a déclaré l'oncle de Spider-Man). Et surtout, grand danger si vous faites des erreurs.

Au lieu de cela, vous devez créer des utilisateurs ad hoc qui n'ont que des autorisations pour effectuer leur travail, et pas plus. Idem pour l'utilisation de Linux ou de tout système Unix, par exemple :vous ne voulez pas utiliser la root utilisateur, mais votre propre compte utilisateur.

Pour créer un nouvel utilisateur, connectez-vous à MySQL en utilisant la root utilisateur :

mysql -u root -p

puis utilisez la commande

CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

Par exemple, pour créer un utilisateur nommé test_user avec le mot de passe test_password12A exécutez la commande :

CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';

La commande doit renvoyer une ligne disant Query OK, 0 rows affected (X.XX sec) :

Si vous avez utilisé un mot de passe invalide, le système vous indiquera quelque chose comme ERROR 1819 (HY000): Your password does not satisfy the current policy requirements . Dans ce cas, l'erreur indique que le mot de passe n'est pas assez complexe, car lorsque j'ai installé MySQL, je lui ai dit d'utiliser une certaine politique sur les mots de passe.

C'est génial! Maintenant, l'utilisateur a été créé et nous pouvons nous connecter en utilisant cet utilisateur à MySQL. Depuis la ligne de commande, vous pouvez quitter en tapant QUIT , et en tapant :

mysql -u test_user -p

Maintenant, si j'essaie de créer une base de données, j'obtiendrai une erreur disant ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing' :

Pourquoi? Parce que l'utilisateur n'a pas la permission de créer une nouvelle base de données .

Nous verrons comment travailler avec les autorisations dans un autre tutoriel.

Il convient de mentionner le @'localhost' chaîne que nous avons utilisée pour créer l'utilisateur. Cela indique à MySQL que l'utilisateur ne peut se connecter qu'à partir de localhost. Ce qui est bien lors des tests et lorsqu'une application qui se connecte à MySQL s'exécute sur le même ordinateur qui exécute le SGBD.

Lorsque ce n'est pas vrai, vous devez soit entrer manuellement l'adresse IP à partir de laquelle l'utilisateur se connectera, soit utiliser le % caractère générique :

CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';

Je souhaite terminer ce didacticiel en montrant comment supprimer l'utilisateur que nous avons créé :

DROP USER 'test_user'@'localhost';