-
Create system trigger
Bonjour,
J'ai fort besion de vos conseils. J'essai de créer un trigger sur la creation d'un table, mais sans succes. Est-ce qq. pourrais me donner un conseil ou LA SOLUTION?
CREATE OR REPLACE TRIGGER trigger_priv
after create ON SCHEMA
DECLARE
oper ddl_log.operation%TYPE;
BEGIN
IF ora_dict_obj_name = 'ct_pack_import' THEN
grant connect to test1;
grant select on ods_empvstime to test1;
grant select on ods_empvstime to test1;
END IF;
END ;
Grand merci,
-
Salut,
Il faut passer par du sql dynamique pour les grant dans une procédure
-
J'ai modifié le trigger, mais j'ai une erreur quand il se declache.
CREATE OR REPLACE TRIGGER ma.priv AFTER
CREATE ON ma.SCHEMA
declare itable number;
sqltxt varchar(200);
Begin
select count(*) into itable from user_objects
where object_name = 'ods_test';
if itable=1 then
sqltxt:='grant select on ma.ods_test to test1';
execute immediate (sqltxt);
End if ;
END priv;
SQL>drop table ods_test;
SQL> create table ods_test as select * from ods_test_save;
create table ods_test as select * from ods_test_save
*
ERREUR à la ligne 1 :
ORA-04098: Déclencheur 'test.PRIV1' non valide. Echec de la revalidation