Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1148917
  • 博文数量: 231
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 16:35
个人简介

学无止境

文章分类

全部博文(231)

文章存档

2014年(7)

2013年(103)

2011年(11)

2010年(53)

2009年(57)

分类: Oracle

2011-01-24 17:20:24

如果有用户登录失败,导致用户被锁,可以通过触发器,记录登录IP到alert log中,但是目前发现这个触发器还不能记录用户登录了哪个用户,但是如果账号被锁,可以结合时间和alert log的记录检查。
 
CREATE OR REPLACE TRIGGER log_errors AFTER SERVERERROR ON DATABASE
Declare
username Varchar2(30);
ipaddress varchar2(16);
terminal varchar2(50) ;
os_user Varchar2(30);
BEGIN
select sys_context('userenv','session_user') Into username from dual;
select sys_context('USERENV','IP_ADDRESS') into ipaddress from dual;
select SYS_CONTEXT('USERENV','TERMINAL') into terminal from dual;
select sys_context('userenv','os_user') into os_user from dual;
   IF (IS_SERVERERROR (1017)) THEN
     BEGIN
      sys.dbms_system.ksdwrt(2,to_char(sysdate)||':'||ipaddress||':'||username||':'||terminal||':'||os_user||':'||'attempted to logon,but password is error!');
     END;
   ELSIF (IS_SERVERERROR (28000))  THEN
     BEGIN
      sys.dbms_system.ksdwrt(2,to_char(sysdate)||':'||ipaddress||':'||username||':'||terminal||':'||os_user||':'||'logon failed,account is locked!');
     END;  
   END IF;
END;
/
阅读(1955) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-07 08:40:09

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com