我正在使用服务器的腻子会话连接到oracle SQL plus,并在下面的查询中进行了操作以获取主机名和IP地址。
这些查询正在重提应用程序服务器的主机名和IP地址,但我的要求是让用户笔记本电脑的主机名和IP地址知道用户的主机名和IP地址,而不是服务器主机名和IP地址。< / p>
任何人都可以帮助获取用户(笔记本电脑)的主机名和IP地址,而不是服务器的主机名和IP地址吗?
select SYS_CONTEXT('USERENV', 'HOST', 15) INTO v_host from dual;
select SYS_CONTEXT('USERENV', 'IP_ADDRESS', 15) INTO v_ipaddress from dual;
答案 0 :(得分:0)
我认为这是不可能的,因为Oracle Sql*plus
没有有关您的putty
客户的信息。
因此对于Oracle Db
,客户端是您的Application Server-发起Sql*plus
调用的表单。
您可能要做的一件事是设置client_info
并使用这些额外的信息来确定真正的客户。
这样的东西(在SQL脚本内部)
DBMS_APPLICATION_INFO.set_client_info(client_info => '&1');
在这种情况下,您应该将putty's
客户值($SSH_CLIENT
环境变量)传递到您的sql脚本中:
sqlplus -S user/password@host << EOF
@/opt/D2RQ/file.sql $SSH_CLIENT
exit;
EOF
答案 1 :(得分:0)
从双选择SYS_CONTEXT('USERENV','IP_ADDRESS')
您可以使用上面的查询来获取客户端的IP地址。