oraunix 发表于 2010-11-23 13:20:49

在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

kevin.zhang 发表于 2010-11-26 10:03:47

这个看到的其实是中间件的IP吧

oraunix 发表于 2010-11-26 12:24:36

不一定,因为oracle的连接会有很多。

oraunix 发表于 2010-11-26 12:27:01

前几天还有一个客户发现有600多个session,让我查一下都有客户端连接的。正常应该是200多。
页: [1]
查看完整版本: 在Oracle中创建跟踪客户端IP地址的触发器