暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

状态: 失败 -测试失败: ORA-04098: 触发器 'SYS.LOGON_IP_CONTROL' 无效且未通过重新验证

原创 伟鹏 2024-10-15
106

今天在更改触发器的时候碰到个坑,是自己不小心造成的。

因业务需要将几个ip地址增加到白名单中,数据库的白名单是通过创建登录触发器设置的,需要将ip地址加入到触发器,重建创建完成的。
更改五分钟之后业务那边反馈,连接数据库有如下无报错

image.png

根据上面的报错信息判断应该是登录触发器出了问题,查看一下这个ora报错是什么

image.png

如上信息显示尝试检索触发器以执行,但发现该触发器无效。这也意味着触发器的编译/授权失败,这个应该是触发器有问题,查看一下触发器是否禁用/valid的。

查看触发器是否禁用
发现触发器状态是enable状态

image.png

因为业务那边比较着急,我重新编辑还是报这个错,为了临时能够解决问题,准备先禁用这个触发器,使业务先恢复正常之后再排查问题

执行如下语句将该触发器disable掉

alter trigger LOGON_IP_CONTROL disable;
复制

但是业务反馈还是没有恢复,连接依然报错,报错截图如下

image.png

查看一下触发器状态看是否是valid
执行如下sql

select * from dba_objects where owner='SYSTEM' AND OBJECT_TYPE='TRIGGER' AND OBJECT_NAME='LOGON_IP_CONTROL';
复制

结果如下:

image.png

发现有个重名的登录触发器,owner是sys,这个应该是刚才操作的时候没有切换到system直接操作导致的,并且状态是invalid,大致判断应该是用户登录触发了sys的触发器,然后这个触发器状态为无效,先删除该触发器
执行如下sql

alter trigger sys.LOGON_IP_CONTROL disable; drop trigger sys.LOGON_IP_CONTROL;
复制

测试
业务用户测试能够正常连接

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论