Partie I
SQL de base
160
© Éditions Eyrolles
La colonne Db est en plus dans les tables host, tables_priv et columns_priv, car elle est
nécessaire pour désigner la base de données sur laquelle portera le droit ou la famille de droits.
Supposons, pour nos exemples, que l’utilisateur Paul (accès en local) et la base de données
bdpaul soient créés.
CREATE DATABASE bdpaul;
CREATE USER Paul@localhost IDENTIFIED BY 'iut';
Table mysql.user
Présenté brièvement au début du chapitre. Cette table est composée de 37 colonnes qui décrivent
les privilèges au niveau global du serveur. Nous détaillons ici la signification des principales.
Privilèges objet (LMD) sur toutes les bases de données
La requête suivante extrait les prérogatives de Paul (et des autres). Pour l’instant, le caractère
'N' étant dans toutes les colonnes, il ne peut ni interroger une table (Select_priv), ni insérer dans une table (Insert_priv), ni en modifier (Update_priv), ni en supprimer
(Delete_priv), et ce quelle que soit la base de données (excepté les bases système test et
information_schema) sur laquelle il voudra se connecter.
SELECT Host, User,
FROM mysql.user;
+-----------+------+-------------+-------------+-------------+-------------+
| Host
| User | Select_priv | Insert_priv | Update_priv | Delete_priv |
+-----------+------+-------------+-------------+-------------+-------------+
| localhost | root | Y
| Y
| Y
| Y
|
| localhost |
| Y
| Y
| Y
| Y
|
| %
|
| N
| N
| N
| N
|
|
|
+-----------+------+-------------+-------------+-------------+-------------+
Figure 5-3 Stockage des prérogatives
Table user / db / host / tables_priv / columns_priv / procs _priv
+----------- +------ +------------- +-------- +-------- +------------- +----- -
| Host
| User | …
| droit1 | droit2 | familledroit1 |
…
+----------- +------ +----------- --+-------- +-------- +---------- -----+---| localhost | root |
|
Y
| Y
| Y
| …
| …
|
|
|
|
|
|
| …
|
|
|
|
|
|
| localhost | Paul |
|
N
| Y
| N
| …
+----------- +------ +------------- +-------- +-------- +------------ ---+---Paul possède le privilège droit2
sur une base / table / objet
Paul
root possède tous les privilèges
sur une base / table / objet
root
Select_priv, Insert_priv, Update_priv, Delete_priv
localhost | Paul | N
| N
| N
| N
Précédent

- 182/418

Suivant