Bonjour,
je tente de donner des droits à un rôle et à un utilisateur sur un objet (table ou vue) d'un schéma tiers dès que celui-ci est créé. J'ai tenté le trigger ci-dessous (créé à partir d'un post trouvé sur developpez.com) mais ça ne fonctionne pas quand je crée une table de TEST dans le schéma DEPLACEMENTS.
Autre question : comment peut-on contrôler l'exécution ou non du trigger (un mode debug en quelque sorte svp) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 CREATE TRIGGER deplacements_tgr AFTER create ON SCHEMA DECLARE CURSOR C_TABLE IS SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'DEPLACEMENTS'; CURSOR C_VIEW IS SELECT VIEW_NAME FROM ALL_VIEWS WHERE OWNER = 'DEPLACEMENTS'; req STRING(200); req2 STRING(200); BEGIN FOR CUR IN C_TABLE LOOP req := 'GRANT SELECT ON DEPLACEMENTS.' || CUR.TABLE_NAME || ' TO DEPLACEMENTS_CONSULT'; req2 := 'GRANT SELECT,INSERT,UPDATE,DELETE ON DEPLACEMENTS.' || CUR.TABLE_NAME || ' TO DEPLACEMENTS_MAJ'; execute immediate (req); execute immediate (req2); FOR CUR IN C_VIEW LOOP req := 'GRANT SELECT ON DEPLACEMENTS.' || CUR.VIEW_NAME || ' TO DEPLACEMENTS_CONSULT'; req2 := 'GRANT SELECT ON DEPLACEMENTS.' || CUR.VIEW_NAME || ' TO DEPLACEMENTS_MAJ'; execute immediate (req); execute immediate (req2); END LOOP; END; /
EDIT : le trigger est créé dans le schéma DEPLACEMENTS
Merci d'avance pour vos réponses
(ORACLE 10.2.0.3)
Partager