jeudi 13 mars 2014

23 - privilèges

0 commentaires

Ajout de privilèges

Pour pouvoir ajouter un privilège à un utilisateur, il faut posséder le privilège GRANT OPTION. Pour l'instant, seul l'utilisateur "root" le possède. Étant donné qu'il s'agit d'un privilège un peu particulier, nous n'en parlerons pas tout de suite. Connectez-vous donc avec "root" pour exécuter les commandes de cette partie.

Syntaxe

La commande pour ajouter des privilèges à un utilisateur est la suivante :
1GRANT privilege [(liste_colonnes)] [, privilege [(liste_colonnes)], ...]
2ON [type_objetniveau_privilege
3TO utilisateur [IDENTIFIED BY mot_de_passe];
  • privilege : le privilège à accorder à l'utilisateur (SELECTCREATE VIEWEXECUTE,…) ;
  • (liste_colonnes) : facultatif - liste des colonnes auxquelles le privilège s'applique ;
  • niveau_privilege : niveau auquel le privilège s'applique (*.*nom_bdd.nom_table,…) ;
  • type_objet : en cas de noms ambigus, il est possible de préciser à quoi se rapporte le niveau :TABLE ou PROCEDURE.
On peut accorder plusieurs privilèges en une fois : il suffit de séparer les privilèges par une virgule. Si l'on veut restreindre tout ou partie des privilèges à certaines colonnes, la liste doit en être précisée pour chaque privilège.
Si l'utilisateur auquel on accorde les privilèges n'existe pas, il sera créé. Auquel cas, il vaut mieux ne pas oublier la clause IDENTIFIED BY pour donner un mot de passe à l'utilisateur. Sinon, il pourra se connecter sans mot de passe.
Si l'utilisateur existe, et qu'on ajoute la clause IDENTIFIED BY, son mot de passe sera modifié.
Exemples
1. On crée un utilisateur 'john'@'localhost', en lui donnant les privilèges SELECTINSERT etDELETE sur la table elevage.Animal, et UPDATE sur les colonnes nomsexe et commentaires de la tableelevage.Animal.
1GRANT SELECT
2      UPDATE (nomsexecommentaires)
3      DELETE
4      INSERT
5ON elevage.Animal
6TO 'john'@'localhost' IDENTIFIED BY 'exemple2012';
2. On accorde le privilège SELECT à l'utilisateur 'john'@'localhost' sur la table elevage.Espece, et on modifie son mot de passe.
1GRANT SELECT
2ON TABLE elevage.Espece -- On précise que c'est une table (facultatif)
3TO 'john'@'localhost' IDENTIFIED BY 'change2012';
3. On accorde à 'john'@'localhost' le privilège de créer et exécuter des procédures stockées dans la base de données elevage.
1GRANT CREATE ROUTINEEXECUTE
2ON elevage.*
3TO 'john'@'localhost';

Révocation de privilèges

Pour retirer un ou plusieurs privilèges à un utilisateur, on utilise la commande REVOKE.
1REVOKE privilege [, privilege, ...]
2ON niveau_privilege
3FROM utilisateur;
Exemple

1REVOKE DELETE
2ON elevage.Animal
3FROM 'john'@'localhost';

Leave a Reply