IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    触发器找出密码错误应用

    惜分飞发表于 2023-11-01 15:33:43
    love 0

    联系:手机/微信(+86 17813235971) QQ(107644445)QQ咨询惜分飞

    标题:触发器找出密码错误应用

    作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

    经常会遇到修改oracle业务用户密码之后,由于部分应用密码没有被正确修改(忘记修改,或者修改错误了),导致数据库被hang或者用户被锁的情况,对于这样的情况,通过一个logon触发器可以快速找到

    create or replace trigger logon_denied_to_alert
    after servererror on database
    declare
     message   varchar2(120);
     IP        varchar2(15);
     v_os_user varchar2(80);
     v_module  varchar2(50);
     v_action  varchar2(50);
     v_pid     varchar2(10);
     v_sid     number;
     v_username  varchar2(50);
     v_suser      varchar2(50);
    begin
     IF (ora_is_servererror(1017)) THEN
       if sys_context('userenv', 'network_protocol') = 'tcp' then
         IP := sys_context('userenv', 'ip_address');
       else
         select distinct sid into v_sid from sys.v_$mystat;
         SELECT p.SPID
           into v_pid
           FROM V$PROCESS p, V$SESSION v
          WHERE p.ADDR = v.PADDR
            AND v.sid = v_sid;
       end if;
       v_os_user := sys_context('userenv', 'os_user');
       v_username := sys_context('userenv', 'CURRENT_USER');
       v_suser := SYS_CONTEXT('USERENV','SESSION_USER');
       dbms_application_info.READ_MODULE(v_module, v_action);
       message := to_char(sysdate, 'Dy Mon dd HH24:MI:SS YYYY') ||
                  ' logon denied from '||v_username||' '||v_suser||' '|| nvl(IP, v_pid) || ' ' || v_os_user ||
                  ' with ' || v_module || ' ' || v_action;
       sys.dbms_system.ksdwrt(2, message);
     end if;
    end;
    /
    

    测试

    SQL> create user test identified by oracle;
    
    User created.
    
    SQL> grant dba to test;
    
    Grant succeeded.
    

    直接本地登录

    SQL> conn test/test
    ERROR:
    ORA-01017: invalid username/password; logon denied
    
    
    Warning: You are no longer connected to ORACLE.
    
    ---alert日志记录
    Wed Nov 01 23:15:04 2023 logon denied from SYS  12886 oracle with sqlplus@iZbp1hx0enix3hix1kvyrxZ (TNS V1-V3) 
    

    通过tns登录

    SQL> conn  test/oracl1@172.27.54.81:1522/orcl
    ERROR:
    ORA-01017: invalid username/password; logon denied
    
    
    Warning: You are no longer connected to ORACLE.
    
    ---alert日志报错
    Wed Nov 01 23:31:51 2023 logon denied from SYS  172.27.54.81 oracle with sqlplus@iZbp1hx0enix3hix1kvyrxZ (TNS V1-V3) 
    
    • 实现trigger集中记录所有库ddl操作
    • 11g 使用 alter user identified by values password 恢复历史密码
    • 物理备库在read only时报ORA-01552错误处理
    • 触发器记录用户登录信息
    • oracle active dataguard修改密码备库延迟生效
    • ORA-01031: insufficient privileges
    • pl/sql的定义者与调用者
    • 通过修改基表(link$)让非public dblink变为public
    • 触发器实现指定用户登录oracle
    • ORACLE 外部表
    • 关于ORACLE 11G密码大小写敏感猜想(USER$.SPARE4)
    • update user$报ORA-01031错误


沪ICP备19023445号-2号
友情链接