免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3790 | 回复: 9
打印 上一主题 下一主题

记录ORACLE尝试登陆的会话 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-28 00:03 |只看该作者 |倒序浏览
大家好,有个问题想请教下大家,就是我能不能通过某种方法来查询别人尝试登陆数据库并且因为账号密码错误导致登录失败的记录


比如一个人尝试着  用SYSMAN 用户登录ORACLE数据库,我能否有LOG进行记录

该ORACLE没购买任何审计功能,能否通过触发器或者实时LOG来查看




谢谢。。。。。。。。

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
2 [报告]
发表于 2010-08-28 15:35 |只看该作者
帮忙顶,我也想知道。

论坛徽章:
0
3 [报告]
发表于 2010-08-29 21:31 |只看该作者
创建日志表:
create table logon_table(USERID VARCHAR2(20),WHO VARCHAR2(20),PTS VARCHAR2(30),SERVICE_USER VARCHAR2(20),IP VARCHAR2(20),LOGONDATE  DATE);

创建触发器:
CREATE TRIGGER TRI_LOGON

  AFTER LOGON ON DATABASE

BEGIN

  INSERT INTO LOGON_TABLE VALUES (SYS_CONTEXT('USERENV', 'SESSIONID'),SYS_CONTEXT('USERENV', 'SESSION_USER'),SYS_CONTEXT('USERENV', 'TERMINAL'),SYS_CONTEXT('USERENV', 'OS_USER'),SYS_CONTEXT('USERENV', 'IP_ADDRESS'),

SYSDATE);

END;
/

论坛徽章:
0
4 [报告]
发表于 2010-08-29 21:31 |只看该作者
根据需要修改一下吧

论坛徽章:
3
CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43
5 [报告]
发表于 2010-08-30 09:34 |只看该作者
恩 不错

论坛徽章:
0
6 [报告]
发表于 2010-08-30 23:00 |只看该作者
本帖最后由 linuxtoy 于 2010-08-30 23:03 编辑

回晚了,不好意思  

非常感谢。。。

不过这个触发器好像是在用户登录成功后才进行记录的吧

论坛徽章:
3
CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43
7 [报告]
发表于 2010-08-31 09:08 |只看该作者
恩 这个只会记录已经成功登陆的会话信息

对于尝试登陆系统的会话来说   这个用这种方式不行的吧

论坛徽章:
0
8 [报告]
发表于 2010-08-31 23:05 |只看该作者
是呀,现在就是想要找尝试登陆,但是登录失败的用户信息

不知哪位高人能否指导指导

论坛徽章:
0
9 [报告]
发表于 2010-09-01 08:28 |只看该作者
修改一下,看看能不能满足你的要求:

SQL> desc tab_logon;
Name                                                  Null?    Type
----------------------------------------------------- -------- ------------------------------------
USERID                                                         VARCHAR2(20)
WHO                                                            VARCHAR2(20)
PTS                                                            VARCHAR2(30)
SERVICE_USER                                                   VARCHAR2(20)
IP                                                             VARCHAR2(20)
LOGONDATE                                                      DATE
SERVERERROR                                                    VARCHAR2(10)

CREATE or replace TRIGGER tri_logerror AFTER SERVERERROR ON DATABASE
BEGIN
IF (IS_SERVERERROR (1017)) THEN
INSERT INTO TAB_LOGON VALUES (SYS_CONTEXT('USERENV', 'SESSIONID'),SYS_CONTEXT(
'USERENV', 'SESSION_USER'),SYS_CONTEXT('USERENV', 'TERMINAL'),SYS_CONTEXT('USERE
NV', 'OS_USER'),SYS_CONTEXT('USERENV', 'IP_ADDRESS'),SYSDATE,'ORA-1017');
END IF;
END;
/

CREATE or replace TRIGGER TRI_LOGON AFTER LOGON ON DATABASE
BEGIN
  INSERT INTO TAB_LOGON VALUES (SYS_CONTEXT('USERENV', 'SESSIONID'),SYS_CONTEXT(
'USERENV', 'SESSION_USER'),SYS_CONTEXT('USERENV', 'TERMINAL'),SYS_CONTEXT('USERE
NV', 'OS_USER'),SYS_CONTEXT('USERENV', 'IP_ADDRESS'),SYSDATE,'ORA-0000');
END;
/

论坛徽章:
0
10 [报告]
发表于 2010-09-02 23:14 |只看该作者
非常感谢楼上热心帮助
我去搞搞看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP