获取session ip
1、查询v$session并不能明确知道应用的具体功能
select t.MACHINE,t.PROCESS,t.PORT,t.PROGRAM,t.MODULE
from v$session t where username='SA' order by t.MACHINE

2、查询到v$session中客户端信息为空
select t.CLIENT_INFO from v$session t where t.USERNAME='ZXX';

3、 sys_context('userenv','ip_address') 只能获取本地连接ip
select sys_context('userenv','ip_address'), sys_context('userenv','host') from dual;
如何获取其他主机session的ip呢?

4、添加触发器
create or replace trigger trg_login_on after logon on database
begin
dbms_application_info.set_client_info( sys_context('userenv','ip_address'));
end;
一旦有新的session连接,oracle就会将session的ip_address写入到v$session中CLIENT_INFO 字段中

5、缺陷:已经连接进来的session还是不能获取ip,只能和开发人员讨论
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:72
阅读量:22
阅读量:172
阅读量:31
阅读量:51