分类: Oracle
2009-01-13 16:49:08
ORA-04098: 触发器 'SYS.DBT_LOGON' 无效且未通过重新验证
google未果。
试着用perfstat登陆,结果出现上面错误。而用其他用户登陆却没有问题。
记得前几天修改过审计,于是将审计去掉。
Noaudit table;
Alter system set audit_trail=none scope=spfile;
Startup force;
问题还是依旧。
根据提示将触发器禁用
Alter trigger SYS.DBT_LOGON disable;
可以了。
使用命令
select trigger_body from dba_triggers where trigger_name='DBT_LOGON';
查看到代码有问题,修改后正确的代码为:
create or replace trigger SYS.DBT_LOGON
after logon on database
BEGIN
execute immediate
'alter session set isolation_level=serializable';
--null;
--select 1+2 into i from dual;
end;
/
再将trigger改回,问题解决。
从上面的结果看,由于其他登录的用户都具有dba的权限。因此,该触发器不对dba用户生效。