Bases de données – L2 S3 informatique
TP4 SQL Manipulation des vues et des droits d’accès (langage de contrôle)


Le but de ce TP est de manipuler des vues, ainsi que des commandes du langage de contrôle permettant de donner des droits sur ces vues à d’autres utilisateurs. Pour exécuter les commandes de passation/révocation de privilèges (GRANT, REVOKE) sur une table ou vue à d’autres comptes utilisateurs, il faudra donc travailler en binôme.


1. Création et manipulation de vues


1. Créer une vue nommée « circuit_pas_cher » contenant le n° de circuit et le prix des circuits de prix inférieur à 200 euros.
- vérifier dans la table système "user_views" la présence de cette vue.
- insérer un tuple à travers la vue « circuit_pas_cher ». Que se passe-t-il ?
2. Pour que la vue « circuit_pas_cher » puisse être modifiée, elle doit reposer sur une table que vous avez le droit de modifier :
- créer une table « mon_circuit » identique à la table « circuit ».
- définir la vue « circuit_pas_cher » qui s’appuie sur votre table « mon_circuit » sans utiliser l’option « check option ».
- peut-on insérer un circuit de prix supérieur à 200 euros à travers la vue ?
- peut-on modifier le prix d'un circuit appartenant à la vue en changeant son prix à 300 ?
3. Définir la vue « circuit_pas_cher » en utilisant l’option « check option ». Qu’est-ce qui change par rapport à la définition précédente sans « check option » ?
4. Créer une vue nommée « circuit_anglais » qui contient les numéros des circuits dont au moins une des villes étape est en Angleterre. Peut-on insérer des tuples à travers cette vue ?


2. Passation de privilèges sur les vues


1. Donner à votre binôme les droits d’accès en lecture (SELECT) sur votre table « mon_circuit » :
- la vue « circuit_pas_cher » est-elle accessible en lecture par votre binome ?
- sinon rendre cette vue accessible à votre binôme.
2. Visualiser les noms de tables (ou vues) pour lesquelles vous avez cédé des privilèges.
3. Insérer un tuple à travers la vue « circuit_pas_cher » :
- votre binôme voit-il l’insertion ?
- sinon que faut-il faire pour rendre cette insertion visible ?
4. Donner à votre binôme des droits d’écriture (INSERT, DELETE, UPDATE) sur la vue « circuit_pas_cher » :
- demander à votre binôme de réaliser une insertion/modification/suppression à travers la vue. Les résultats sont-ils visibles sur votre compte ?
5. Enlever à votre binôme le droit d’accès en lecture (SELECT) sur la vue « circuit_pas_cher ». Vérifier qu’il les a bien perdus. Peut-il toujours faire des insertions/modifications/suppressions ?