ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 捕捉尝试登陆失败的用户信息

捕捉尝试登陆失败的用户信息

原创 Linux操作系统 作者:lsq_008 时间:2010-02-23 08:47:32 1 删除 编辑

最近一个应用的用户被锁,查了一下发现在profile里设置了100次尝试登陆的限制,为了定位具体尝试登陆的时间及ip等相关信息,需要写一个trigger进行捕捉,以下来自网上:

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;
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');
    dbms_application_info.READ_MODULE(v_module, v_action);
    message := to_char(sysdate, 'Dy Mon dd HH24:MI:SS YYYY') ||
               ' logon denied from ' || nvl(IP, v_pid) || ' ' || v_os_user ||
               ' with ' || v_module || ' ' || v_action;
    sys.dbms_system.ksdwrt(2, message);
  end if;
end;
/

当有用户尝试登陆失败后,alert日志里记录了如下信息:
Mon Feb 22 03:50:13 2010 logon denied from 192.168.80.19 oracle with sqlplus@node1 (TNS V1-V3)
该trigger只是记录登陆失败的信息,正常成功登陆不会记录。

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

请登录后发表评论 登录
全部评论
十余年大型金融及电信系统数据库管理经验,曾服务于中国建设银行、中国移动。对oracle,mysql数据库有深入了解。 擅长python开发,独立开发了开源数据库自动化监控运维平台Power Monitor。

注册时间:2008-02-29

  • 博文量
    335
  • 访问量
    1369143