© Éditions Eyrolles
187
chapitre n° 5
Contrôle des données
Manipulons à présent la vue de notre exemple :
Confidentialité
La confidentialité est une des vocations premières des vues. Outre l’utilisation de variables
d’environnement, il est possible de restreindre l’accès à des tables en fonction de moments
précis.
Les vues suivantes limitent temporellement les accès en lecture et en écriture à des tables.
Notez qu’il est possible, en plus, de limiter l’accès à un utilisateur particulier en utilisant une
variable d’environnement (exemple : rajout de la condition AND CURRENT_USER() =
'Paul@localhost' à une vue).
Figure 5-10 Vue simulant la contrainte CHECK
Web
Pilote
brevet
nom
nbHVol
grade
PL-1
Daniel Vielle
1000
CDB
PL-2
Benoit Treilhou
450
COPI
PL-3
Pierre Filoux
9000
INST
PL-4
Philippe Minier
1000
COPI
CREATE VIEW VueGradePilotes
AS SELECT brevet,nom,nbHVol,grade
FROM Pilote
WHERE (grade ='CDB'
AND nbHVol BETWEEN 1000 AND 4000)
OR
(grade = 'COPI'
AND nbHVol BETWEEN 100 AND 1000)
OR
(gr ade = 'INST' AND nb HVol > 3000)
WITH CHECK OPTION;
Tableau 5-22 Manipulations des vues pour l’intégrité référentielle
Mises à jour possibles
Mises à jour non valides : ERROR 1369
(HY000): CHECK OPTION failed
'bdsoutou.VueGradePilotes'
INSERT INTO VueGradePilotes
(brevet,nom,nbHVol,grade) VALUES
('PL-1','Daniel Vielle',
);
INSERT INTO VueGradePilotes
(brevet,nom,nbHVol,grade) VALUES
('PL-2','Benoit Treihlou',
);
INSERT INTO VueGradePilotes
(brevet,nom,nbHVol,grade) VALUES
('PL-3','Pierre Filoux',
);
INSERT INTO VueGradePilotes
(brevet,nom,nbHVol,grade) VALUES
('PL-4','Philippe Minier',
);
INSERT INTO VueGradePilotes
(brevet,nom,nbHVol,grade)VALUES
('PL-5','Trop jeune',
);
INSERT INTO VueGradePilotes
(brevet,nom,nbHVol,grade) VALUES
('PL-6',
'Inexperimente',
);
UPDATE VueGradePilotes
SET
WHERE brevet = 'PL-2';
UPDATE VueGradePilotes
SET
WHERE brevet = 'PL-4';
UPDATE VueGradePilotes
SET
WHERE brevet = 'PL-3';
Web
1000,'CDB'
450,'COPI'
9000,'INST'
1000,'COPI'
100,'CDB'
2999,'INST'
grade ='INST'
grade ='CDB'
nbHVol= 50
Précédent

- 209/418

Suivant