Триггер SQL Server - информация о соединении - PullRequest
1 голос
/ 10 февраля 2010

возможно ли получить информацию о соединении MSSQL?
не только SUSER_ID (), SUSER_NAME (), ORIGINAL_LOGIN (), НО другое, например:

  • IP
  • Строка подключения
  • ЭСТ ..

Ответы [ 2 ]

3 голосов
/ 10 февраля 2010

Вы можете получить дополнительную информацию из sys.dm_exec_connections :

, например

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

Это позволит получить информацию о соединении, доступную для текущего процесса (SPID). Это не дает полную строку подключения, но дает некоторую дополнительную информацию, такую ​​как IP-адрес (client_net_address).

Это будет работать для SQL Server 2005 и выше.

2 голосов
/ 10 февраля 2010

Вы не упомянули версию 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
...