Partie I
SQL de base
188
© Éditions Eyrolles
Transmission de droits
Les mécanismes de transmission et de révocation de privilèges que nous avons étudiés s’appliquent également aux vues. Ainsi, si un utilisateur désire transmettre des droits sur une partie
d’une de ses tables, il utilisera une vue. Seules les données appartenant à la vue seront accessibles aux bénéficiaires.
Les privilèges objet qu’il est possible d’attribuer sur une vue sont les mêmes que ceux applicables sur les tables (SELECT, INSERT, UPDATE sur une ou plusieurs colonnes, DELETE).
Modification d’une vue (ALTER VIEW)
Vous devez au moins posséder les privilèges CREATE VIEW et DELETE au niveau d’une vue
pour pouvoir la modifier. La syntaxe SQL est la suivante :
ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW [nomBase.]nomVue [(listecolonnes)]
AS requêteSELECT
[WITH [CASCADED | LOCAL] CHECK OPTION];
Tableau 5-23 Vues pour restreindre l’accès à des moments précis
Définition de la vue
Accès
CREATE VIEW VueDesCompagniesJoursFeries
AS SELECT * FROM Compagnie
WHERE
;
Restriction en lecture de la table Compagnie, les
samedis et dimanches. Mises à jour possibles à
tout moment.
CREATE VIEW VueDesPilotesJoursOuvrables
AS SELECT * FROM Pilote
WHERE
AND DATE_FORMAT(SYSDATE(),'%W')
NOT IN ('Sunday', 'Saturday')
WITH CHECK OPTION;
Restriction, en lecture et en écriture (à cause de
WITH CHECK OPTION), de la table Pilote les
jours ouvrables de 8h30 à 17h30.
Web
DATE_FORMAT(SYSDATE(),'%W')
IN ('Sunday','Saturday')
CURTIME()+0
BETWEEN 83000 AND 173000
Tableau 5-24 Privilèges sur les vues
Attribution du privilège
Signification
GRANT SELECT ON VueDesCompagniesJoursFeries
TO 'Paul'@'localhost';
Accès en local de l’utilisateur Paul en lecture sur la vue
VueDesCompagniesJoursFériés.
GRANT INSERT ON VueDesPilotesJoursOuvrables
TO 'Jules'@'localhost';
Accès en local de l’utilisateur Jules en
écriture sur la vue
VueDesCompagniesJoursFériés.
SQL de base
188
© Éditions Eyrolles
Transmission de droits
Les mécanismes de transmission et de révocation de privilèges que nous avons étudiés s’appliquent également aux vues. Ainsi, si un utilisateur désire transmettre des droits sur une partie
d’une de ses tables, il utilisera une vue. Seules les données appartenant à la vue seront accessibles aux bénéficiaires.
Les privilèges objet qu’il est possible d’attribuer sur une vue sont les mêmes que ceux applicables sur les tables (SELECT, INSERT, UPDATE sur une ou plusieurs colonnes, DELETE).
Modification d’une vue (ALTER VIEW)
Vous devez au moins posséder les privilèges CREATE VIEW et DELETE au niveau d’une vue
pour pouvoir la modifier. La syntaxe SQL est la suivante :
ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW [nomBase.]nomVue [(listecolonnes)]
AS requêteSELECT
[WITH [CASCADED | LOCAL] CHECK OPTION];
Tableau 5-23 Vues pour restreindre l’accès à des moments précis
Définition de la vue
Accès
CREATE VIEW VueDesCompagniesJoursFeries
AS SELECT * FROM Compagnie
WHERE
;
Restriction en lecture de la table Compagnie, les
samedis et dimanches. Mises à jour possibles à
tout moment.
CREATE VIEW VueDesPilotesJoursOuvrables
AS SELECT * FROM Pilote
WHERE
AND DATE_FORMAT(SYSDATE(),'%W')
NOT IN ('Sunday', 'Saturday')
WITH CHECK OPTION;
Restriction, en lecture et en écriture (à cause de
WITH CHECK OPTION), de la table Pilote les
jours ouvrables de 8h30 à 17h30.
Web
DATE_FORMAT(SYSDATE(),'%W')
IN ('Sunday','Saturday')
CURTIME()+0
BETWEEN 83000 AND 173000
Tableau 5-24 Privilèges sur les vues
Attribution du privilège
Signification
GRANT SELECT ON VueDesCompagniesJoursFeries
TO 'Paul'@'localhost';
Accès en local de l’utilisateur Paul en lecture sur la vue
VueDesCompagniesJoursFériés.
GRANT INSERT ON VueDesPilotesJoursOuvrables
TO 'Jules'@'localhost';
Accès en local de l’utilisateur Jules en
écriture sur la vue
VueDesCompagniesJoursFériés.
