DDL Trigger на уровне базы данных - PullRequest
1 голос
/ 14 марта 2020

Я создал триггер уровня БД для аудита действий DDL, однако его срабатывает только в oracle 12 c, а не в oracle 11g. Даже после изменения значения параметра 'enable_ddl_logging' на TRUE, оно не будет запущено. Может кто-нибудь сообщить мне, почему он не работает в Oracle 11g?

Ниже приведен триггер DDL:

create or replace trigger audit_ddl_trg after ddl on database 
begin
    insert into schema.audit_ddl(ddl_date, osuser,current_user,host,terminal,owner,type,name,sysevent)
    values(
      sysdate,
      sys_context('USERENV','OS_USER') ,
      sys_context('USERENV','CURRENT_USER') ,
      sys_context('USERENV','HOST') ,
      sys_context('USERENV','TERMINAL') ,
      ora_dict_obj_owner,
      ora_dict_obj_type,
      ora_dict_obj_name,
      ora_sysevent
    );
    exception when others then 
    raise;
 end;
/

Спасибо, Вишну

...