Autorisations des utilisateurs MySQL

Une introduction rapide aux autorisations utilisateur dans une base de données MySQL

Voyons comment accorder des autorisations (appelées privilèges) à un utilisateur de la base de données MySQL

Par défaut, lorsque vous créez un nouvel utilisateur MySQL à l'aide de la syntaxe

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

l'utilisateur ne peut pas faire grand-chose. On peut dire que ça ne peut rien, en fait.

Il ne peut pas lire les données d'une base de données existante, et encore moins modifier les données. Et il ne peut même pas créer une nouvelle base de données.

Pour obliger un utilisateur à faire quoi que ce soit, vous devezaccorder des privilègesà lui.

Vous pouvez le faire en utilisant leGRANTcommander.

On peut utiliserGRANT <permission>, en utilisant les mots-clés d'autorisation suivants:

  • CREATE
  • DROP
  • DELETE
  • INSERT
  • SELECT
  • UPDATE
  • ALL PRIVILEGES

Donner le privilège de créer de nouvelles bases de données à un utilisateur

GRANT CREATE ON *.* TO '<username>'@'localhost';

Donner des privilèges à un utilisateur pour créer de nouvelles tables dans une base de données spécifique

GRANT CREATE ON <database>.* TO '<username>'@'localhost';

Donner le privilège de lire (interroger) une base de données spécifique à un utilisateur

GRANT SELECT ON <database>.* TO '<username>'@'localhost';

Accorder le privilège de lire une base de données spécifiquetableà un utilisateur

GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';

Donner le privilège d'insérer, mettre à jour et supprimer des lignes dans une base de données spécifique à un utilisateur

GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';

Donner le privilège de supprimer des tables dans une base de données spécifique à un utilisateur

GRANT DROP ON <database>.* TO '<username>'@'localhost';

Donner le privilège de supprimer des bases de données à un utilisateur

GRANT DROP ON *.* TO '<username>'@'localhost';

Donner tous les privilèges sur une base de données spécifique à un utilisateur

GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';

Donner tous les privilèges à un utilisateur

GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Révoquer un privilège

Exemple de révocation duDROPprivilège sur<database>:

REVOKE DROP ON <database>.* TO '<username>'@'localhost';

Pour révoquer tous les privilèges, exécutez:

REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Vous pouvez visualiser les privilèges d'un seul utilisateur en exécutant:

SHOW GRANTS FOR '<username>'@'localhost';

Plus de didacticiels sur les bases de données: