【发布时间】:2010-02-10 14:28:50
【问题描述】:
是否可以获得 MSSQL 连接信息?
不仅是 SUSER_ID()、SUSER_NAME()、ORIGINAL_LOGIN(),还有其他类似的:
- IP
- 连接字符串
- 等等..
【问题讨论】:
标签: sql sql-server connection-string
是否可以获得 MSSQL 连接信息?
不仅是 SUSER_ID()、SUSER_NAME()、ORIGINAL_LOGIN(),还有其他类似的:
【问题讨论】:
标签: sql sql-server connection-string
您可以从sys.dm_exec_connections获得更多信息:
例如
SELECT *
FROM sys.dm_exec_connections
WHERE session_id = @@SPID
这将获得可用于当前进程 (SPID) 的连接信息。 这不会提供完整的连接字符串,但会提供更多信息,例如 IP 地址 (client_net_address)。
这适用于 SQL Server 2005 及更高版本。
【讨论】:
您没有提及您使用的 SQL Server 版本,但这应该适用于 SQL 2005 及更高版本。您可以根据需要更改@@SPID。
SELECT
conn.session_ID as SPID,
conn.client_net_address as IPAddress,
sess.host_name as MachineName,
sess.program_name as ApplicationName,
login_name as LoginName
FROM
sys.dm_exec_connections conn
INNER JOIN sys.dm_exec_sessions sess ON
conn.session_ID = sess.session_ID
WHERE
conn.session_ID = @@SPID
【讨论】: