Partie I
SQL de base
170
© Éditions Eyrolles
SELECT CONCAT(User,'@',Host) "Compte",
CONCAT(,'.',Routine_name,':',Routine_type) "Objet",
Grantor, Proc_priv FROM mysql.procs_priv;
+-----------------+----------------------+----------------+---------------+
| Compte
| Objet
| Grantor
| Proc_priv
|
+-----------------+----------------------+----------------+---------------+
| Jules@localhost | bdpaul.sp1:PROCEDURE | root@localhost | Execute
|
| Jules@localhost | bdpaul.sp2:FUNCTION | root@localhost | Execute
|
| Paul@localhost | bdpaul.sp1:PROCEDURE | root@localhost | Alter Routine |
+-----------------+----------------------+----------------+---------------+
On retrouve le privilège en modification de sp1 pour Paul, et les deux privilèges d’exécution
de Jules.
Révocation de privilèges (REVOKE)
La révocation d’un ou de plusieurs privilèges est réalisée par l’instruction REVOKE. Pour
pouvoir révoquer un privilège, vous devez détenir (avoir reçu) au préalable ce même privilège
avec l’option WITH GRANT OPTION.
Syntaxe
Dans la syntaxe suivante, les options sont les mêmes que pour la commande GRANT.
REVOKE privilège [ (col1 [, col2...])] [,privilège2 ... ]
ON [ {TABLE | FUNCTION | PROCEDURE} ]
{nomTable | * | *.* | nomBase.*}
FROM utilisateur [,utilisateur2 ... ];
Exemples
Le tableau suivant décrit la révocation de certains privilèges acquis des utilisateurs Paul et Jules.
Tableau 5-8 Révocation de privilèges
Instruction faite par root
Explication
REVOKE CREATE
ON
FROM
;
Privilège système database level :
Paul (en accès local) ne peut plus créer de tables dans
la base bdpaul.
REVOKE ALTER,INSERT,UPDATE(ISBN)
ON
FROM
;
Privilège objet table level :
Paul ne peut plus modifier la structure (ou les
contraintes), insérer et modifier la colonne ISBN de la
table Livre contenue dans la base bdpaul.
GRANT USAGE ON bdpaul.*
TO
WITH
MAX_QUERIES_PER_HOUR 0
MAX_UPDATES_PER_HOUR 0;
Privilège système database level :
Jules n’est plus limité en requêtes SELECT et UPDATE
sur la base de données bdpaul. Ici c’est un GRANT qu’il
faut faire, car il s’agit plus d’une restriction de connexion
que d’une instruction SQL.
bdpaul.*
'Paul'@'localhost'
bdpaul.Livre
'Paul'@'localhost'
'Jules'@'localhost'
Précédent

- 192/418

Suivant