在Firebird中获取连接的客户端IP



我有一个托管在服务器上的Firebird数据库。Firebird可以通过MON$ATTACHMENTS表显示已连接用户的列表,包括用户名、角色等。但是,我不知道如何获得一个特定客户端的IP地址。

示例:如果来自192.168.1.77的用户"user"连接到192.168.1.2(服务器),我如何使用Firebird查询获得192.168.1.77地址?

编辑:MON$REMOTE_ADDRESS显示DHCP服务器地址,而不是本地客户端地址。

Firebird有一个内部附件表,其中存储了每个当前连接。可以像这样查询名为USER的用户的远程地址:

select MON$REMOTE_ADDRESS
  from MON$ATTACHMENTS
  where MON$USER = 'USER'

如果您对当前客户端的连接感兴趣,您可以使用以下查询:

   SELECT MON$USER, MON$REMOTE_ADDRESS,
       MON$REMOTE_PID,
       MON$TIMESTAMP
     FROM MON$ATTACHMENTS
     WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION
https://firebirdsql.org/rlsnotesh/rnfb210-admin.html

相关内容

  • 没有找到相关文章

最新更新