审计数据库登陆失败触发器

1. 输入日志
oerr ora 1017
01017, 00000, "invalid username/password; logon denied"
alert.log
2011-07-01 10:14:04 logon denied from 172.16.15.57 ccclyi with sqlplus.exe
2011-07-01 10:14:53 logon denied from 172.16.15.57 ccclyi with plsqldev.exe
2011-07-01 10:25:27 logon denied from 884 oracle with sqlplus@ra (TNS V1-V3)
no transcation, so no exception check~
2. 创建触发器
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 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_module is much useful, "plsqldev.exe"
    dbms_application_info.read_module(v_module, v_action);
    message := to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss')||' logon denied from '||nvl(ip, v_pid)
            ||' '||v_os_user||' with '||v_module||' '||v_action;
  
  --write alert.log
    sys.dbms_system.ksdwrt(2, message);
  END IF;
END;
/
 

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

转载于:http://blog.itpub.net/9252210/viewspace-701117/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值