TRIGGER
Création et suppression de triggers
LOCK TABLES
Verrouillage de tables (sur lesquelles on a le privilège SELECT)
CREATE USER
Gestion d'utilisateur (commandes CREATE USER, DROP USER, RENAME USER et SET
PASSWORD)
Les différents niveaux d'application des privilèges
Lorsque l'on accorde un privilège à un utilisateur, il faut également préciser à quoi s'applique ce privilège.
Niveau
Application du privilège
*.*
Privilège global : s'applique à toutes les bases de données, à tous les objets. Un privilège de ce
niveau sera stocké dans la table mysql.user.
*
Si aucune base de données n'a été préalablement sélectionnée (avec USE nom_bdd), c'est
l'équivalent de *.* (privilège stocké dans mysql.user). Sinon, le privilège s'appliquera à tous les
objets de la base de données qu'on utilise (et sera stocké dans la table mysql.db).
nom_bdd.*
Privilège de base de données : s'applique à tous les objets de la base nom_bdd (stocké dans
mysql.db).
nom_bdd.nom_table
Privilège de table (stocké dans mysql.tables_priv).
nom_table
Privilège de table : s'applique à la table nom_table de la base de données dans laquelle on se trouve,
sélectionnée au préalable avec USE nom_bdd (stocké dans mysql.tables_priv).
nom_bdd.nom_routine
S'applique à la procédure (ou fonction) stockée nom_bdd.nom_routine (privilège stocké dans
mysql.procs_priv).
Les privilèges peuvent aussi être restreints à certaines colonnes, auquel cas, ils seront stockés dans la table
mysql.columns_priv. Nous verrons comment restreindre un privilège à certaines colonnes avec la commande GRANT.
Ajout et révocation de privilèges
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. Connectezvous donc avec "root" pour exécuter les commandes de cette partie.
Syntaxe
La commande pour ajouter des privilèges à un utilisateur est la suivante :
Code : SQL
GRANT privilege [(liste_colonnes)] [, privilege [(liste_colonnes)],
...]
ON [type_objet] niveau_privilege
TO utilisateur [IDENTIFIED BY mot_de_passe];
privilege : le privilège à accorder à l'utilisateur (SELECT, CREATE VIEW, EXECUTE,…) ;
(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.
Partie 7 : Gestion des utilisateurs et configuration du serveur
385/414
www.openclassrooms.com
Précédent

- 385/413

Suivant