关于用户登录的时候遇到ora-04098问题无法登陆

        小编在创建一个普通用户后给了这个用户create session,connect,resource的权限后,用这个普通用户准备进入数据库发现一个触发器把我拦在了登录这个地方;

我不知道各位在安装oracle-g11-R2时,对应系统本身产生的触发器出现一个问题:

    名为:ON_LOGON_TIGGER

    原本内容是:

trigger on_logon_tigger 
after logon on database 
begin dbms_application_info.set_client_info(sys_context('userenv','ip_address');
end;

    然后我一直以为不是触发器本身的问题,在百度上找各种信息:

    开始重启服务,新建用户,附加权限(就是没有给系统权限!);

    结果都失败了,然后我开始检查这个触发器,发现它少了一个括号!!!!;

    然后尝试禁用这个触发器,然后用普通用户登录,结果就成功了;很是无语。

尝试修复触发器----------------

    我尝试把这个触发器的括号加上去,步骤是,删除这个触发器,重新建一个(没有找到在原来基础之上加触发器)。

    最后启用这个触发器,然后在重新登录普通用户,就可以了。。。

涉及到的命令如下:(只关于触发器的。)

    首先,找到这个触发器所属用户,命令如下:

SELECT owner 
   FROM DBA_OBJECTS T
 WHERE T.OBJECT_TYPE = 'TRIGGER'
   AND T.OBJECT_NAME = 'ON_LOGON_TIGGER';

    然后,以这个用户的身份进入,去将这个触发器删除,命令如下:

drop trigger ON_LOGON_TIGGER;
commit;

    再然后就是新建触发器,命令如下:

create or replace trigger on_logon_tigger 
after logon on database 
begin dbms_application_info.set_client_info(sys_context('userenv','ip_address')); 
end;

        注:这些命令前三个词就是一组创建触发器的命令,之后将原来的语句加个括号就可以了,要是原来的语句没了,你也就完了。

    再然后,查看一下触发器语句,命令如下:

select text from all_source where type='TRIGGER' and name like 'ON_LOGON_TIGGER';

    最后,加一个启用命令(加不加是否会有区别,没有测过,最好加一下),命令如下:

alter trigger ON_LOGON_TIGGER enable;

就此,关于这个触发器导致的用户无法登陆到此结束;

总结:当遇到触发器问题无法登陆的时候,先禁用相关触发器,然后尝试登陆:若成功,即去修复这个触发器;若不成功,同志继续努力吧!!!!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值