ITPub博客

首页 > 数据库 > Oracle > 触发器查找密码错误用户

触发器查找密码错误用户

原创 Oracle 作者:yingyifeng306 时间:2025-03-21 09:46:28 0 删除 编辑

create or replace trigger logon_denied

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;

/



“1”: Write to the standard trace file(向标准Trace文件中写入信息)

“2”: Write to the alert log(向alert日志文件中写入信息)

“3”: Write to both files at once(同时向Trace文件和alert日志文件中写入信息)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23732248/viewspace-3078284/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
ITpub论坛高可用版主,擅长研究Oracle 内部原理、新特性、高可用和性能调优等,多年来一直保持着对新事务旺盛的求知欲。热切关注 Oracle 和其它相关技术

注册时间:2011-10-12

  • 博文量
    291
  • 访问量
    1593085