Bonjour,
n'étant pas très à l'aise avec la programmation PL/SQL, je viens sur le forum demander de l'aide.
Je travail sous Oracle 10g en ligne de commande.
Pour mieux comprendre le fonctionnement, je généralise l'exemple pour lequel j'adapterai mon cas.
J'ai créer 2 utilisateurs : u1 et u2 .
Pour chaque utilisateurs : 4 tables ( t1, t2 , t3 , t4 )
t1 ( j number , k varchar )
t2 ( i number )
t3 ( j number , l number )
t4 ( i number , k number , l varchar )
En étant connecté en u1
I. créer une procédure/fonction pl/sql qui permet de tester les droits de l'utilisateur 2 (u2) :
a)- droit de suppression , selection , mise à jour, insertion sur la table 1 (t1)
b)- droit de selection sur la table 2 (t2)
c)- droit d'insertion sur la table 3 (t3)
d)- droit de mise à jour sur la table 4 (t4)
ici j'ai réalisé :
a) grant delete, select, update, insert on t1 to u2 ;
b) grant select on t2 to u2;
c) grant insert on t3 to u2;
d) grant update on t4 to u2;
Je ne sais pas comment faire dans une procédure/fonction ! ( Begin ...END; )
II. Donner les droits à l'utilisateur 2 (u2) sur la procédure/fonction.
ici je ne sais pas comment faire
III. Connection en utilisateur 2 ( u2 ) : Executer la procedure/fonction en tant qu'utilisateur 2 (u2)
__________________
Sur les triggers :
Connection en utilisateur 1 (u1 )
IV. Créer un trigger sur la table 1 (t1 ) qui permet de tester les droits en utilisateur 1 , puis en utilisateur 2 (u2).
create trigger nom_trigger ... "je suis totalement perdue "
--> connection en utilisateur 2 (u2) : créer l'évenement de déclenchementdu curseur.
Si quelqu'un peut m'aider sur cet exemple , ce serait vraiment sympa car cela m'aidera pour la compréhension de la programmation PL/SQL.
merci
Partager