Comment créer un nouvel utilisateur MySQL et accorder des droits d’accès via la ligne de commande

MySQL est un système de gestion de base de données relationnelle populaire et largement utilisé pour diverses applications Web. L’une des tâches importantes que les administrateurs de bases de données doivent effectuer est de créer de nouveaux utilisateurs MySQL et de leur accorder les droits d’accès appropriés.

Les droits d’accès ou privileges sont des règles qui définissent ce qu’un utilisateur peut faire avec une base de données, une table, une colonne ou un autre objet. En accordant des droits d’accès appropriés, vous pouvez améliorer la sécurité et les performances de votre base de données.

Dans cet article, Bardimin expliquera comment créer un nouvel utilisateur MySQL et accorder des droits d’accès via la ligne de commande. Bardimin abordera également certaines commandes MySQL utiles pour la gestion des utilisateurs et des droits d’accès.

Étape 1 : Connectez-vous à MySQL en tant que root

Avant de pouvoir créer un nouvel utilisateur MySQL ou accorder des autorisations, vous devez être connecté à MySQL en tant qu’utilisateur root ou un autre utilisateur disposant de droits d’accès GRANT. L’utilisateur root est l’utilisateur qui a tous les droits d’accès à toutes les bases de données et objets MySQL. Vous pouvez vous connecter à MySQL en tant que root en utilisant la commande suivante :

mysql -u root -p

Cette commande vous demandera d’entrer le mot de passe root que vous avez créé lors de l’installation de MySQL. Une fois que vous avez entré le mot de passe correct, vous verrez une invite MySQL comme celle-ci :

mysql>

Étape 2 : Créer un nouvel utilisateur MySQL

Après vous être connecté à MySQL en tant que root, vous pouvez créer un nouvel utilisateur MySQL à l’aide de la commande CREATE USER. Le format général de cette commande est le suivant :

CREATE USER 'username''host' IDENTIFIED BY 'password';

Ici, vous devez remplacer le username, le host et le password par les valeurs correspondantes. username s’agit du nom de l’utilisateur que vous souhaitez créer. host est le nom d’hôte ou l’adresse IP à partir de laquelle un utilisateur peut se connecter à MySQL.

Vous pouvez utiliser % pour indiquer que les utilisateurs peuvent se connecter de n’importe où, ou vous pouvez restreindre les utilisateurs pour qu’ils se connectent uniquement à partir d’hôtes spécifiques. password s’agit du mot de passe que vous souhaitez définir pour l’utilisateur.

Par exemple, si vous souhaitez créer un utilisateur nommé user1 qui peut se connecter de n’importe où avec un mot de passe pass1, vous pouvez utiliser la commande suivante :

CREATE USER 'user1''%' IDENTIFIED BY 'pass1';

Si la commande réussit, un message semblable à celui-ci s’affiche :

Query OK, 0 rows affected (0.01 sec)

Vous pouvez vérifier si l’utilisateur a été créé correctement à l’aide de la commande SELECT dans la table mysql.user :

SELECT User, Host FROM mysql.user;

Cette commande affichera tous les utilisateurs MySQL existants et leurs hôtes. Vous devriez voir des résultats comme celui-ci :

+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| user1 | % |
+------------------+-----------+
4 rows in set (0.00 sec)

Ici, vous pouvez voir qu’user1 utilisateur a été créé avec l’hôte %.

Étape 3 : Accorder des droits d’accès aux nouveaux utilisateurs MySQL

Après avoir créé un nouvel utilisateur MySQL, vous devez lui accorder les autorisations appropriées. Vous pouvez accorder des autorisations à l’aide de la commande GRANT. Le format général de cette commande est le suivant :

GRANT privileges ON database.table TO ‘username »host’ ;

Ici, vous devez remplacer les privileges, database, table, username et host par les valeurs correspondantes. privileges s’agit du droit d’accès que vous souhaitez accorder à un utilisateur. Vous pouvez accorder des droits d’accès spécifiques tels que SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE, GRANT OPTION, etc.

Vous pouvez également accorder des droits d’accès globaux tels que ALL PRIVILEGES ou ALL qui inclut tous les droits d’accès existants. database s’agit du nom de la base de données à laquelle vous souhaitez accorder des droits d’accès. Vous pouvez utiliser * pour afficher toutes les bases de données. table s’agit du nom de la table à laquelle vous souhaitez accorder des droits d’accès. Vous pouvez également utiliser * pour afficher toutes les tables. username et host sont des noms d’utilisateur et des hôtes que vous avez créés auparavant.

Par exemple, si vous souhaitez accorder des droits d’ accès SELECT, INSERT, UPDATE et DELETE à user1 utilisateurs sur toutes les tables de db1 base de données, vous pouvez utiliser la commande suivante :

GRANT SELECT, INSERT, UPDATE, DELETE ON db1.* TO 'user1''%';

Si la commande réussit, un message semblable à celui-ci s’affiche :

Query OK, 0 rows affected (0.01 sec)

Vous pouvez vérifier si les autorisations ont été accordées correctement à l’aide de la commande SHOW GRANTS :

SHOW GRANTS FOR 'user1''%';

Cette commande affichera tous les droits d’accès détenus par l’utilisateur user1. Vous devriez voir des résultats comme celui-ci :

+--------------------------------------------------------------+
| Grants for user1% |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `user1``%` |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `db1`.* TO `user1``%`|
+--------------------------------------------------------------+
2 rows in set (0.00 sec)

Ici, vous pouvez voir que user1 utilisateur dispose des droits d’accès SELECT, INSERT, UPDATE et DELETE sur toutes les tables de db1 base de données.

Étape 4 : Modifier ou révoquer les droits d’accès d’un utilisateur MySQL

Si vous souhaitez modifier ou révoquer les autorisations d’un utilisateur MySQL, vous pouvez utiliser la commande REVOKE. Le format général de cette commande est le suivant :

REVOKE privileges ON database.table FROM ‘username »host’ ;

Ici, vous devez remplacer les privileges, database, table, username et host par les valeurs correspondantes. privileges s’agit du droit d’accès que vous souhaitez modifier ou révoquer à l’utilisateur. Vous pouvez utiliser des droits d’accès spécifiques ou globaux comme décrit précédemment. database, table, username et host sont les noms des bases de données, des tables, des utilisateurs et des hôtes auxquels vous avez précédemment accordé des droits d’accès.

Par exemple, si vous souhaitez révoquer les autorisations DELETE d’un utilisateur user1 sur toutes les tables de db1 base de données, vous pouvez utiliser la commande suivante :

REVOKE DELETE ON db1.* FROM 'user1'''%';

Si la commande réussit, un message semblable à celui-ci s’affiche :

Query OK, 0 rows affected (0.01 sec)

Vous pouvez vérifier si les droits d’accès ont été révoqués correctement à l’aide de la commande SHOW GRANTS :

SHOW GRANTS FOR 'user1''%';

Cette commande affichera tous les droits d’accès détenus par l’utilisateur user1. Vous devriez voir des résultats comme celui-ci :

+--------------------------------------------------------------+
| Grants for user1% |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `user1``%` |
| GRANT SELECT, INSERT, UPDATE ON `db1`.* TO `user1``%` |
+--------------------------------------------------------------+
2 rows in set (0.00 sec)

Ici, vous pouvez voir que DELETE droits d’accès ont été révoqués pour user1 utilisateurs sur toutes les tables de db1 base de données.

Étape 5 : Supprimer les utilisateurs MySQL

Si vous souhaitez supprimer un utilisateur MySQL, vous pouvez utiliser la commande DROP USER. Le format général de cette commande est le suivant :

DROP USER 'username''host';

Ici, vous devrez remplacer le username et le host par le nom d’utilisateur et l’hôte que vous souhaitez supprimer. Cette commande supprime l’utilisateur et toutes les autorisations dont il dispose.

Par exemple, si vous souhaitez supprimer un utilisateur user1, vous pouvez utiliser la commande suivante :

DROP USER 'user1''%';

Si la commande réussit, un message semblable à celui-ci s’affiche :

Query OK, 0 rows affected (0.01 sec)

Vous pouvez vérifier si un utilisateur a été supprimé correctement à l’aide de la commande SELECT dans le tableau mysql.user :

SELECT User, Host FROM mysql.user;

Cette commande affichera tous les utilisateurs MySQL existants et leurs hôtes. Vous devriez voir des résultats comme celui-ci :

+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
3 rows in set (0.00 sec)

Ici, vous pouvez voir que user1 utilisateur a été supprimé de la liste des utilisateurs MySQL.

Conclusion

MySQL dispose de plusieurs commandes utiles pour gérer les utilisateurs et les droits d’accès. À l’aide de ces commandes, vous pouvez organiser votre base de données MySQL de manière plus efficace et plus sécurisée.

J’espère que cet article vous sera utile. Merci d’avoir lu.

ARTICLES LIÉS

Dernières articles