© Éditions Eyrolles
169
chapitre n° 5
Contrôle des données
Les privilèges CREATE ROUTINE, ALTER ROUTINE, EXECUTE, et GRANT s’appliquent sur
les sous-programmes catalogués et peuvent être attribués au niveau global et database. ALTER
ROUTINE, EXECUTE, et GRANT peuvent être assignés aussi au niveau routine.
En supposant que la base bdpaul contient la procédure cataloguée sp1() et la fonction
sp2(), toutes deux écrites par root, le tableau suivant exprime l’affectation de quelques
privilèges en donnant les explications associées.
La colonne Routine_name de la table mysql.procs_priv désigne le nom du sousprogramme catalogué. La colonne Routine_type précise le type du sous-programme catalogué (fonction ou procédure). La colonne Grantor indique l’utilisateur ayant compilé le
sous-programme. La colonne Proc_priv est un SET contenant la liste des droits de l’utilisateur sur le sous-programme de la base.
Extrayons les privilèges relatifs aux sous-programmes au niveau database.
SELECT CONCAT(User,'@',Host) "Compte", Db,
Create_routine_priv "create routine", Alter_routine_priv "alter routine",
Execute_priv "exec. routine" FROM mysql.db;
+----------------+---------+----------------+---------------+---------------+
| Compte
| Db
| create routine | alter routine | exec. routine |
+----------------+---------+----------------+---------------+---------------+
| @%
| test\_% | N
| N
| N
|
| @%
| test
| N
| N
| N
|
|
| N
| N
|
+----------------+---------+----------------+---------------+---------------+
On retrouve le privilège de Paul. Extrayons enfin les privilèges relatifs aux sous-programmes
au niveau routine.
Tableau 5-7 Affectation de privilèges
Instruction faite par root
Explication
GRANT CREATE ROUTINE ON
TO 'Paul'@'localhost';
Privilège système database level :
Paul (en accès local) peut créer ou supprimer
des sous-programmes catalogués dans la base
bdpaul.
GRANT ALTER ROUTINE ON
TO 'Paul'@'localhost';
Privilège système routine level :
Paul peut modifier la procédure sp1 contenue
dans la base bdpaul.
GRANT EXECUTE ON
TO 'Jules'@'localhost';
GRANT EXECUTE ON
TO 'Jules'@'localhost';
Privilèges système routine level :
Jules peut exécuter la procédure sp1 et la
fonction sp2 contenues dans la base bdpaul.
bdpaul.*
PROCEDURE bdpaul.sp1
PROCEDURE bdpaul.sp1
FUNCTION bdpaul.sp2
Paul@localhost | bdpaul | Y
Précédent

- 191/418

Suivant