Partie I
SQL de base
202
© Éditions Eyrolles
MySQL utilise :
q
GRANTEE qui indique le nom de l’accès utilisateur.
q
PRIVILEGE_TYPE qui indique le type du privilège.
q
IS_GRANTABLE qui renseigne sur la possibilité que l’accès utilisateur puisse retransmettre le privilège acquis (reçu avec WITH GRANT OPTION).
Au niveau database
La vue SCHEMA_PRIVILEGES possède la même structure que la précédente, en ajoutant la
colonne TABLE_SCHEMA. Celle-ci donne le nom de la base de données concernée par les
privilèges des accès utilisateurs (les données viennent de la table db.user). La requête
suivante extrait les privilèges au niveau database de Paul, en accès distant ou local.
SELECT
,GRANTEE,PRIVILEGE_TYPE,IS_GRANTABLE
FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
WHERE GRANTEE LIKE '''Paul%';
+--------------+------------------------+----------------+--------------+
| TABLE_SCHEMA | GRANTEE
| PRIVILEGE_TYPE | IS_GRANTABLE |
+--------------+------------------------+----------------+--------------+
| bdpaul
| 'Paul'@'192.168.4.173' | SELECT
| NO
|
| bdpaul
| 'Paul'@'localhost'
| DROP
| NO
|
| bdpaul
| 'Paul'@'localhost'
| CREATE ROUTINE | NO
|
+--------------+------------------------+----------------+--------------+
Au niveau table
La vue TABLE_PRIVILEGES possède la même structure que la précédente, en ajoutant la
colonne TABLE_NAME. Celle-ci donne le nom de la table concernée par les privilèges des
accès utilisateurs (les données viennent de la table mysql.tables_priv). La requête
suivante extrait les privilèges au niveau table de Paul, en accès distant ou local.
SELECT
AS 'Base.Table',
GRANTEE,PRIVILEGE_TYPE AS 'Privilege'
FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
WHERE GRANTEE LIKE '''Paul%';
+--------------------------------------+------------------------+-----------+
|
| GRANTEE
| Privilege |
+--------------------------------------+------------------------+-----------+
| bdsoutou.VueDesCompagniesJoursFeries | 'Paul'@'localhost'
| SELECT
|
| bdpaul.Livre
| 'Paul'@'192.168.4.173' | SELECT
|
| bdpaul.Livre
| 'Paul'@'localhost'
| SELECT
|
| bdpaul.Livre
| 'Paul'@'localhost'
| DELETE
|
+--------------------------------------+------------------------+-----------+
TABLE_SCHEMA
CONCAT(TABLE_SCHEMA,'.',TABLE_NAME)
Base.Table
SQL de base
202
© Éditions Eyrolles
MySQL utilise :
q
GRANTEE qui indique le nom de l’accès utilisateur.
q
PRIVILEGE_TYPE qui indique le type du privilège.
q
IS_GRANTABLE qui renseigne sur la possibilité que l’accès utilisateur puisse retransmettre le privilège acquis (reçu avec WITH GRANT OPTION).
Au niveau database
La vue SCHEMA_PRIVILEGES possède la même structure que la précédente, en ajoutant la
colonne TABLE_SCHEMA. Celle-ci donne le nom de la base de données concernée par les
privilèges des accès utilisateurs (les données viennent de la table db.user). La requête
suivante extrait les privilèges au niveau database de Paul, en accès distant ou local.
SELECT
,GRANTEE,PRIVILEGE_TYPE,IS_GRANTABLE
FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
WHERE GRANTEE LIKE '''Paul%';
+--------------+------------------------+----------------+--------------+
| TABLE_SCHEMA | GRANTEE
| PRIVILEGE_TYPE | IS_GRANTABLE |
+--------------+------------------------+----------------+--------------+
| bdpaul
| 'Paul'@'192.168.4.173' | SELECT
| NO
|
| bdpaul
| 'Paul'@'localhost'
| DROP
| NO
|
| bdpaul
| 'Paul'@'localhost'
| CREATE ROUTINE | NO
|
+--------------+------------------------+----------------+--------------+
Au niveau table
La vue TABLE_PRIVILEGES possède la même structure que la précédente, en ajoutant la
colonne TABLE_NAME. Celle-ci donne le nom de la table concernée par les privilèges des
accès utilisateurs (les données viennent de la table mysql.tables_priv). La requête
suivante extrait les privilèges au niveau table de Paul, en accès distant ou local.
SELECT
AS 'Base.Table',
GRANTEE,PRIVILEGE_TYPE AS 'Privilege'
FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
WHERE GRANTEE LIKE '''Paul%';
+--------------------------------------+------------------------+-----------+
|
| GRANTEE
| Privilege |
+--------------------------------------+------------------------+-----------+
| bdsoutou.VueDesCompagniesJoursFeries | 'Paul'@'localhost'
| SELECT
|
| bdpaul.Livre
| 'Paul'@'192.168.4.173' | SELECT
|
| bdpaul.Livre
| 'Paul'@'localhost'
| SELECT
|
| bdpaul.Livre
| 'Paul'@'localhost'
| DELETE
|
+--------------------------------------+------------------------+-----------+
TABLE_SCHEMA
CONCAT(TABLE_SCHEMA,'.',TABLE_NAME)
Base.Table
