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

Autorisations utilisateur MySQL

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

Par défaut lorsque vous créez un nouvel utilisateur MySQL en utilisant la syntaxe

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

l'utilisateur ne peut pas faire grand chose. On peut dire qu'il ne peut rien faire, 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 devez accorder des privilèges à elle.

Vous pouvez le faire en utilisant le GRANT commande.

Nous pouvons utiliser GRANT <permission> , en utilisant les mots clés d'autorisation suivants :

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

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

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

Accorder 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';

Accorder 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 table de base de données spécifique à un utilisateur

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

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

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

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

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

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

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

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

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

Accorder tous les privilèges à un utilisateur

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

Révoquer un privilège

Exemple pour révoquer le DROP privilè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';