加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

获取oracle客户端用户的IP地址

发布时间:2021-01-08 08:17:57 所属栏目:站长百科 来源:网络整理
导读:我需要一个查询来获取已经与数据库建立会话的所有IP客户端用户,我的工作(医院)中有一个Oracle数据库服务器,有时数据库停止工作,无法执行Oracle完成的任何查询系统的模块是用户的接口,所以要解决它我们必须杀死连接到数据库的所有会话并让所有用户重新启动

我需要一个查询来获取已经与数据库建立会话的所有IP客户端用户,我的工作(医院)中有一个Oracle数据库服务器,有时数据库停止工作,无法执行Oracle完成的任何查询系统的模块是用户的接口,所以要解决它我们必须杀死连接到数据库的所有会话并让所有用户重新启动会话,我的问题是有没有办法获取ip地址的任何信息会话就像会话的消费?

解决方法

I need a query to get all IP’s of client users that have already a session to the database

您可以使用SYS_CONTEXT.它将返回当前会话的以下主机和IP地址信息:

> TERMINAL – 当前会话的操作系统标识符.这通常是客户端计算机名称.
> HOST – 客户端计算机的主机名.
> IP_ADDRESS – 客户端计算机的IP地址.
> SERVER_HOST – 运行数据库实例的服务器的主机名.

看看Tim Hall的这个article.

例如,

SQL> SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM dual;

SYS_CONTEXT('USERENV','IP_ADDRESS')
----------------------------------------------------------
127.0.0.1

SQL>

对我来说,IP是localhost,所以我得到127.0.0.1

编辑从以下评论中的讨论,为了从v $session获取所有用户的IP地址列表,您可以使用它们连接的MACHINE.

SELECT utl_inaddr.get_host_address(t.machine),t.* FROM v $session t;

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!