© Éditions Eyrolles
159
chapitre n° 5
Contrôle des données
Niveaux de privilèges
La figure suivante illustre les différents niveaux de privilèges que l’on peut rencontrer :
q
Global level : privilèges s’appliquant à toutes les bases du serveur. Ces privilèges sont
stockés dans la table mysql.user (exemple d’attribution d’un privilège global : GRANT
CREATE
…).
q
Database level : privilèges s’appliquant à tous les objets d’une base de données en particulier. Ces privilèges sont stockés dans les tables mysql.db et mysql.host (exemple
d’attribution d’un privilège database : GRANT SELECT
…).
q
Table level : privilèges s’appliquant à la globalité d’une table d’une base de données en
particulier. Ces privilèges sont stockés dans la table mysql.tables_priv (exemple
d’attribution d’un privilège table : GRANT INSERT
…).
q
Column level : privilèges s’appliquant à une des colonnes d’une table d’une base de
données en particulier. Ces privilèges sont stockés dans la table mysql.columns_priv
(exemple d’attribution d’un privilège column : GRANT
UPDATE(
)ON
…).
q
Routine level : privilèges globaux ou au niveau d’une base (CREATE ROUTINE, ALTER
ROUTINE, EXECUTE, et GRANT) s’appliquant aux procédures cataloguées (étudiées au
chapitre 7). Ces privilèges sont stockés dans la table mysql.procs_priv de la base
mysql (exemple d’attribution d’un privilège routine : GRANT EXECUTE ON
…).
Tables de la base mysql
Cinq tables de la base de données mysql suffisent à MySQL pour stocker les privilèges
(système et objet) de tous les utilisateurs. La figure suivante illustre comment MySQL déduit
toutes ces prérogatives toujours en fonction des accès (couple utilisateur, machine).
Figure 5-2 Niveaux de privilèges
Jules
Paul
mysql
test
information_schema
bdjules
bdpaul
Routine level
Global level
Database level
Table level
Column level
ON *.*
ON bdpaul.*
ON bdpaul.Avion
nomComp
bdpaul.Compagnie
PROCEDURE
bdpaul.sp1
159
chapitre n° 5
Contrôle des données
Niveaux de privilèges
La figure suivante illustre les différents niveaux de privilèges que l’on peut rencontrer :
q
Global level : privilèges s’appliquant à toutes les bases du serveur. Ces privilèges sont
stockés dans la table mysql.user (exemple d’attribution d’un privilège global : GRANT
CREATE
…).
q
Database level : privilèges s’appliquant à tous les objets d’une base de données en particulier. Ces privilèges sont stockés dans les tables mysql.db et mysql.host (exemple
d’attribution d’un privilège database : GRANT SELECT
…).
q
Table level : privilèges s’appliquant à la globalité d’une table d’une base de données en
particulier. Ces privilèges sont stockés dans la table mysql.tables_priv (exemple
d’attribution d’un privilège table : GRANT INSERT
…).
q
Column level : privilèges s’appliquant à une des colonnes d’une table d’une base de
données en particulier. Ces privilèges sont stockés dans la table mysql.columns_priv
(exemple d’attribution d’un privilège column : GRANT
UPDATE(
)ON
…).
q
Routine level : privilèges globaux ou au niveau d’une base (CREATE ROUTINE, ALTER
ROUTINE, EXECUTE, et GRANT) s’appliquant aux procédures cataloguées (étudiées au
chapitre 7). Ces privilèges sont stockés dans la table mysql.procs_priv de la base
mysql (exemple d’attribution d’un privilège routine : GRANT EXECUTE ON
…).
Tables de la base mysql
Cinq tables de la base de données mysql suffisent à MySQL pour stocker les privilèges
(système et objet) de tous les utilisateurs. La figure suivante illustre comment MySQL déduit
toutes ces prérogatives toujours en fonction des accès (couple utilisateur, machine).
Figure 5-2 Niveaux de privilèges
Jules
Paul
mysql
test
information_schema
bdjules
bdpaul
Routine level
Global level
Database level
Table level
Column level
ON *.*
ON bdpaul.*
ON bdpaul.Avion
nomComp
bdpaul.Compagnie
PROCEDURE
bdpaul.sp1
