小弟因最近项目需要,想对oracle系统表(存放审计信息的表)写一个触发器。代码如下create or replace trigger audit_insert
after insert on sys.aud$
for each row
begin
insert into wsba.audit_backup (sessionid,userid,sqltext) values(:new.sessionid,:new.userid,:new.sqltext);
end;但是系统提示:
create or replace trigger audit_insert
*
第 1 行出现错误:
ORA-04089: 无法对 SYS 拥有的对象创建触发器难道真的不能对系统表创建触发器?请问各位大虾有没有好的解决方案啊,谢谢了
after insert on sys.aud$
for each row
begin
insert into wsba.audit_backup (sessionid,userid,sqltext) values(:new.sessionid,:new.userid,:new.sqltext);
end;但是系统提示:
create or replace trigger audit_insert
*
第 1 行出现错误:
ORA-04089: 无法对 SYS 拥有的对象创建触发器难道真的不能对系统表创建触发器?请问各位大虾有没有好的解决方案啊,谢谢了
Cause: An attempt was made to create a trigger on an object owned by SYS.
Action: Do not create triggers on objects owned by SYS.
1、不要在sys下建立对象!
2、不要手工改动sys拥有的对象!
是你们自己建的吧?
不要在sys,system用户下建表
将表移到一般用户下再进行操作
不能在sys.aud$上创建触发器
可以在sys用户下写触发器,将需要的信息更新到你新建用户下的数据表内。
在sys用户下写触发器,新建用户下的数据表内。