Netezza SQL查找客户端IP

时间:2014-12-10 13:59:27

标签: netezza

有没有办法在Netezza中返回客户端IP地址?在Oracle中,我们运行以下查询。

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

由于

2 个答案:

答案 0 :(得分:2)

此查询可以为您提供有关current_session的所有信息。

select client_ip
from _v_session_detail
where session_id= CURRENT_SID

答案 1 :(得分:0)

如果您不想将其作为表格中的列进行访问,则可以使用“show session”来提供该信息。

SYSTEM.ADMIN(ADMIN)=> SYSTEM.ADMIN(ADMIN)=> show session;
 SESSION_ID |  PID  | USERNAME | DBNAME | SCHEMA | TYPE |    CONNECT_TIME     | SESSION_STATE_NAME |   SQLTEXT    | PRIORITY_NAME | CLIENT_PID | CLIENT_IP | CLIENT_OS_USERNAME
------------+-------+----------+--------+--------+------+---------------------+--------------------+--------------+---------------+------------+-----------+--------------------
      16228 | 10272 | ADMIN    | SYSTEM | ADMIN  | sql  | 2014-12-10 10:56:48 | active             | show session | normal        | 10271      | 127.0.0.1 |
(1 row)

您还可以查询_v_session,它将报告您有可见性/授权的会话,但不一定会告诉您哪一个是您的。对于非管理用户,这通常只是您的会话,因此应该很容易辨别。

SYSTEM.ADMIN(ADMIN)=> select * from _v_session;
  ID   |  PID  | USERNAME | DBNAME | TYPE |      CONNTIME       | STATUS |         COMMAND          | PRIORITY |  CID  |  IPADDR   | CLIENT_OS_USERNAME
-------+-------+----------+--------+------+---------------------+--------+--------------------------+----------+-------+-----------+--------------------
 16228 | 10272 | ADMIN    | SYSTEM | sql  | 2014-12-10 10:56:48 | active | select * from _v_session |        3 | 10271 | 127.0.0.1 |
(1 row)

如果您只需要有关您在其中调用查询的特定会话的信息,那么这将起到作用。

SYSTEM.ADMIN(ADMIN)=> select * from _v_session where id = current_sid;

  ID   |  PID  | USERNAME | DBNAME | TYPE |      CONNTIME       | STATUS |                     COMMAND                     | PRIORITY |  CID  |  IPADDR   | CLIENT_OS_USERNAME
-------+-------+----------+--------+------+---------------------+--------+-------------------------------------------------+----------+-------+-----------+--------------------
 16837 | 22310 | ADMIN    | SYSTEM | sql  | 2014-12-10 19:06:21 | active | select * from _v_session where id = current_sid |        3 | 22309 | 127.0.0.1 |
(1 row)

我应该注意,您在这里寻找的内容已被查询历史数据库跟踪,该数据库很可能已在您的系统上配置。