ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 审计数据库登陆失败触发器

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

Linux操作系统 作者:lhrbest 时间:2015-08-05 19:31:05 0 删除 编辑
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/26736162/viewspace-1763011/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 我想大声告诉你
请登录后发表评论 登录
全部评论
QQ:646634621| 网名:小麦苗| 微信公众号:xiaomaimiaolhr| 11g OCM| QQ群:618766405 微信群:私聊| 《数据库笔试面试宝典》作者| OCP、OCM、高可用(RAC+DG+OGG)网络班开讲啦,有需要的小伙伴可以私聊我。

注册时间:2012-09-23

  • 博文量
    1367
  • 访问量
    8348658