Recherche de site Web

Comment créer un nouvel utilisateur et accorder des autorisations dans MySQL


MySQL est un système de gestion de base de données populaire et largement utilisé qui stocke et organise les données et permet aux utilisateurs de les récupérer. Il est livré avec une vaste gamme d'options qui accordent aux utilisateurs certaines autorisations sur les tables et les bases de données.

Dans ce guide, vous apprendrez comment créer un nouvel utilisateur et accorder des autorisations dans la base de données MySQL.

Comment créer un nouvel utilisateur dans MySQL

Pour créer un nouvel utilisateur, connectez-vous d’abord au shell MySQL.

sudo mysql -u root -p

Fournissez le mot de passe sudo suivi du mot de passe fourni lors de la configuration de la base de données MySQL et appuyez sur ENTER. Par la suite, vous recevrez cette invite.

Pour créer un nouvel utilisateur, utilisez la syntaxe ci-dessous :

MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Par exemple, pour créer un nouvel utilisateur appelé « tecmint » dans la base de données, appelez la commande :

MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';

Quelques points à garder à l'esprit

Lors de l'ajout d'un utilisateur localement, c'est-à-dire sur le système sur lequel vous avez installé MySQL, l'hôte de l'utilisateur est spécifié comme localhost, et non l'adresse IP. Le mot-clé « localhost » se traduit par « cet ordinateur » et MySQL le traite de manière unique. Fondamentalement, localhost est utilisé par le client MySQL pour établir une connexion au serveur de base de données MySQL installé localement.

Jusqu'à présent, l'utilisateur tecmint ne dispose d'aucune autorisation pour interagir avec les bases de données. En fait, l'utilisateur ne peut même pas accéder au shell MySQL.

Pour accorder à l'utilisateur un accès complet à toutes les bases de données, y compris les tables, exécutez.

MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';

Dans la commande ci-dessus, les astérisques pointent respectivement vers la base de données et la table auxquelles l'utilisateur peut accéder. Il accorde à l'utilisateur tous les droits sur la base de données : lire, écrire, éditer et exécuter, y compris exécuter tous les droits. les tâches dans d'autres bases de données et tables également.

Jusqu'à présent, nous avons accordé à l'utilisateur un accès complet à la base de données. Bien que cela soit pratique pour expliquer les concepts de MySQL, ce n'est généralement pas recommandé car cela pourrait présenter un risque de sécurité pour vos bases de données. Pensez simplement à ce qui pourrait arriver si un pirate informatique mettait la main sur le mot de passe de l’utilisateur. Nous irons plus loin et discuterons de la manière d'attribuer des autorisations spécifiques dans la section suivante.

Lorsque vous avez fini d'attribuer des autorisations à l'utilisateur, rechargez tous les privilèges comme indiqué pour que les modifications prennent effet.

MariaDB [none]> FLUSH PRIVILEGES

Comment accorder différentes autorisations utilisateur

Voici un aperçu des autorisations possibles que vous pouvez accorder aux utilisateurs :

  • TOUS LES PRIVILÈGES – Comme vu précédemment, cela accorde à un utilisateur MySQL un accès complet à une base de données spécifique.
  • CREATE – Permet aux utilisateurs de créer de nouvelles bases de données ou tables.
  • DROP – Permet aux utilisateurs de supprimer des bases de données ou des utilisateurs.
  • INSERT – Permet aux utilisateurs d'insérer des lignes dans des tableaux.
  • DELETE – Permet aux utilisateurs de supprimer des lignes des tableaux.
  • SELECT – avec l'autorisation « SELECT », les utilisateurs peuvent lire le contenu d'un tableau.
  • UPDATE – Permet aux utilisateurs de mettre à jour les lignes d'un tableau.
  • OPTION D'OCTROIEMENT : les utilisateurs peuvent accorder ou supprimer les privilèges d'autres utilisateurs.

Pour accorder une autorisation utilisateur spécifique, utilisez la syntaxe :

MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';

De plus, vous pouvez attribuer des autorisations à toutes les tables d'une base de données avec un seul astérisque, comme indiqué :

MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';

Par exemple, pour attribuer les autorisations SELECT à l'utilisateur « tecmint » sur toutes les tables de la base de données testdb, exécutez la commande.

MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';

Ensuite, videz les privilèges pour que les modifications prennent effet.

MariaDB [none]> FLUSH PRIVILEGES;

De plus, vous pouvez attribuer plusieurs autorisations à la fois en les séparant par une virgule, comme indiqué.

MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';

Comment révoquer les autorisations MySQL

Pour révoquer les autorisations d'un utilisateur, utilisez la syntaxe :

MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';

Par exemple, pour révoquer les autorisations INSERT de l'utilisateur « tecmint », exécutez la commande.

MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES

Pour avoir un aperçu des autorisations actuelles d'un utilisateur, exécutez :

MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';

Dans le résultat ci-dessous, nous pouvons voir que l'autorisation INSERT a été supprimée de l'utilisateur 'tecmint', ne laissant que SELECT et UPDATE. sur la base de données testdb.

Pour tester la connexion au shell MySQL à l'aide du nouvel utilisateur, déconnectez-vous d'abord.

MariaDB [none]> quit;

Puis reconnectez-vous.

sudo mysql -u tecmint -p

Fournissez le mot de passe de l'utilisateur et appuyez sur ENTER pour accéder au shell.

Pour supprimer un utilisateur, utilisez la commande DROP, comme vous le feriez pour supprimer une base de données.

MariaDB [none]> DROP USER 'username'@'localhost';

Vous aimerez peut-être également lire les articles suivants sur MySQL :

  • Conseils utiles pour résoudre les erreurs courantes dans MySQL
  • Mytop – Un outil utile pour surveiller les performances MySQL/MariaDB sous Linux
  • Comment changer le port MySQL/MariaDB par défaut sous Linux
  • Comment réinitialiser le mot de passe racine MySQL ou MariaDB sous Linux
Conclusion

Espérons que vous puissiez désormais créer des utilisateurs sur vos serveurs de base de données MySQL et attribuer ou révoquer facilement des autorisations.