【问题标题】:SQL Server trigger - connection infoSQL Server 触发器 - 连接信息
【发布时间】:2010-02-10 14:28:50
【问题描述】:

是否可以获得 MSSQL 连接信息?
不仅是 SUSER_ID()、SUSER_NAME()、ORIGINAL_LOGIN(),还有其他类似的:

  • IP
  • 连接字符串
  • 等等..

【问题讨论】:

    标签: sql sql-server connection-string


    【解决方案1】:

    您可以从sys.dm_exec_connections获得更多信息:

    例如

    SELECT * 
    FROM sys.dm_exec_connections 
    WHERE session_id = @@SPID
    

    这将获得可用于当前进程 (SPID) 的连接信息。 这不会提供完整的连接字符串,但会提供更多信息,例如 IP 地址 (client_net_address)。

    这适用于 SQL Server 2005 及更高版本。

    【讨论】:

    • 就是这样,谢谢您注意:获取更多信息,例如 host_name、program_name 和其他 SELECT * FROM sys.dm_exec_sessions ES JOIN sys.dm_exec_connections CN ON CN.session_id = ES.session_id WHERE ES.session_id = @@SPID
    【解决方案2】:

    您没有提及您使用的 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
    

    【讨论】:

      猜你喜欢
      • 2015-08-19
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多