我有一个托管在服务器上的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