------------------------------------------------------------------------------- corr_confidentialite.txt 12 avril 2023 ------------------------------------------------------------------------------- -- L'exercice 7.3 est un exercice d'annales. Voici la reponse complete suffisante attendue. En examen il est totalement inutile d'ajouter des commentaires. -- comptes utilisateurs SGBD : programmeur : p employes : e1, ..., en client : c c'est p qui tape sur son compte tout ce qui suit -- identification et suppression des droits existants : q1= select grantee, table_name, privilege from user_tab_privs where table_name in ('CLIENT', 'VILLAGE', 'SEJOUR') q2= select grantee, procedure_name from user_proc_privs where procedure_name in ('TRAITEMENT1', 'TRAITEMENT2', 'TRAITEMENT3') retirer ces droits : - pour chaque u dans q1 faire : revoke u.privilege on client, village, sejour from u.grantee - pour chaque u dans q2 faire : revoke execute on traitement1, traitement2, traitement3 from u.grantee -- programmation des actions : grant insert village to e1, ..., en grant select village e1...en grant update(activite,capacite) village e1...en grant select sejour e1...en create procedure traitement3 grant execute traitement3 e1...en create procedure traitement1 grant execute traitement1 c create procedure traitement2 grant execute traitement2 c create view village_sans_sejour as select idv,ville activite,prix from village where idv not in (select idv from sejour) grant select on village_sans_sejour to c create procedure consulter_client(i)=select client where idc=i create procedure consulter_sejour(i)=select sejour where idc=i create procedure consulter_village(i)= select idv,ville,activite,prix,capacite from village,sejour where village.idv=sejour.idv and idc=i grant execute consulter_client,consulter_sejour, consulter_village c create procedure authentification(i,n)=select client where idc=i and nom=n grant execute authentification c -------------------------------------------------------------------------------