问题描述
我尝试了以下方法,但它是基于用户的。无论哪个用户连接到该地址,我都在尝试获取客户端计算机 IP 地址。
SELECT distinct
c.CLIENTIP
FROM v$process a,v$session b,fnd_logins c,fnd_user d
WHERE a.pid = c.pid
AND d.user_id = c.user_id
and d.user_name = '&User_name'
AND a.addr = b.paddr
AND c.end_time IS NULL;
解决方法
您可以删除过滤器并在选择中包含用户名。你不需要连接固定视图 (v$...) 所以我已经删除了它们。我不知道数据模型,很可能还有您感兴趣的其他列。
这将返回登录用户的名称和客户端 IP
SELECT distinct
d.user_name,c.CLIENTIP
FROM fnd_logins c,fnd_user d
WHERE d.user_id = c.user_id
AND c.end_time IS NULL;
,
您可以使用闪电战报告 FND User Login History 中的 SQL,显示所有用户的数据以及从 fnd_logins 到其他 FND 数据的附加连接。
,Andrew 的查询应该在不限制用户的情况下为您提供查询。
MOS Note 2069190.1 的第 3 节和相关的 zip 有一些 fnd 登录和 icx 会话表的示例查询,这些查询对此类查询以及表之间的连接很有用。
在 E-Business Suite 中查询 IP 地址时要记住以下几点:
- 目前仅在 FND 登录表中捕获客户端 IP 地址,不适用于 HTML(自助服务)页面(尽管在未来版本中可能会发生变化)。
- 可以在 Apache 访问日志中找到 HTML 页面的 IP 地址 - 但很难将这些地址与特定用户相关联。
- 如果您的电子商务套件前有负载平衡器或反向代理,您很可能会获得该机器的 IP 地址,除非您通过客户端 IP 传递 - 但这是另一个问题。