我在插入或更新之前在表上创建触发器。我知道用户可以使用“更改触发器禁用”选项来禁用触发器。我希望任何用户甚至SYS用户限制都禁用特定触发器。我正在使用Oracle Database 11g。
如何实现这个目标?
谢谢
DDL
需要一个database
触发器:
create or replace trigger trg_ddl before ddl on database
declare
v_oty varchar2(75) := ora_dict_obj_type;
v_evt varchar2(75) := ora_sysevent;
v_olu varchar2(75) := nvl(ora_login_user,'Undetermined Schema');
begin
if ( nvl(v_evt,'X--|') = 'ALTER' and nvl(v_oty,'Y-|') = 'TRIGGER'
and nvl(olu,'Z|--|') not in ('SYS','SYSTEM') ) then
raise_application_error( -20900 ,'Forbidden Operation');
end if;
end;