在Oracle中创建跟踪客户端IP地址的触发器

在Oracle中创建跟踪客户端IP地址的触发器

若果要让v$logmnr_contents中的session_info记录客户端ip,但SESSION_INFO中我们并不能直接看到IP,
不过我们还是有办法的,因为这个SESSION_INFO里面的内容其实是日志从V$SESSION视图里提取的,我们可以
在生产数据库中创建一个追踪客户端IP地址的触发器:

create or replace trigger on_logon_trigger
after logon on database
begin
dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));
end;
/

现在,我们就可以在V$SESSION视图的CLIENT_INFO列中看到新登录的客户端IP地址了。那么现在就可以在
session_info 中看客户端的ip了

select SID,SERIAL#,USERNAME, PROGRAM,client_info from v$session
标签: 暂无标签
oraunix

写了 199 篇文章,拥有财富 1026,被 339 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 2010-11-26 10:03:47
这个看到的其实是中间件的IP吧
回复

使用道具

P6 | 发表于 2010-11-26 12:24:36
不一定,因为oracle的连接会有很多。
回复

使用道具

P6 | 发表于 2010-11-26 12:27:01
前几天还有一个客户发现有600多个session,让我查一下都有客户端连接的。正常应该是200多。
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈