我在服务器上托管了Firebird数据库。 Firebird可以使用MON$ATTACHMENTS
表显示已连接用户的列表,其中包含用户名,角色等。但是,我无法找到如何获取某个特定客户端的IP地址。
例如:如果来自192.168.1.77
的用户“USER”已连接到192.168.1.2
(服务器),如何通过Firebird查询获取此192.168.1.77
地址?
编辑:MON$REMOTE_ADDRESS
显示DHCP服务器地址,而不是本地客户端地址。
答案 0 :(得分:4)
Firebird有一个内部附件表,其中存储了每个当前连接。可以像这样查询名为USER
的用户的远程地址:
select MON$REMOTE_ADDRESS
from MON$ATTACHMENTS
where MON$USER = 'USER'
答案 1 :(得分:0)
如果您对当前客户端的连接感兴趣,可以使用以下查询:
SELECT MON$USER, MON$REMOTE_ADDRESS,
MON$REMOTE_PID,
MON$TIMESTAMP
FROM MON$ATTACHMENTS
WHERE MON$ATTACHMENT_ID <> CURRENT_CONNECTION