oracle 客户端的ip,oracle 获取远程客户端IP地址

如何获得所有远程Session 的客户端IP 地址

在Oracle 数据库中没有直接获取远程session 客户端IP 地址的方法。但是存在直接获取当前session 客户端IP 地址的方法。通过在数据库中创建after logon 触发器,再结合使用DBMS_APPLICATION_INFO.SET_CLIENT_INFO 存储过程,我们可以通过查询v$session 来获取所有

远程session 的客户端IP 地址。

首先,创建如下触发器:

CREATE OR REPLACE TRIGGER login_on AFTER LOGON ON DATABASE

DECLARE

ipinfo VARCHAR2(30);

BEGIN

SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') INTO ipinfo FROM DUAL;

DBMS_APPLICATION_INFO.SET_CLIENT_INFO(ipinfo);

END;

/

然后使用任意的用户远程(TNS)连接到数据库中,然后通过查询以下语句便可查看该session 的客户端IP 地址:

21:03:35 system@PROD> conn scott/tiger@prod

Connected.

21:04:05 scott@PROD> col sys_context('userenv','sid') for a40

21:04:18 scott@PROD> select sys_context('userenv','sid') from dual;

SYS_CONTEXT('USERENV','SID')

----------------------------------------

125

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值