Śledzenie programu SQL Server na podstawie portu TCP klienta

9

Mam serwer terminali Windows z wieloma różnymi użytkownikami logującymi się przez RDP w celu uruchomienia aplikacji. Aplikacja wykonuje jedno lub więcej połączeń dla użytkownika z instancją SQL Server 2008 R2. Wszyscy użytkownicy uzyskują dostęp do tej samej bazy danych przy użyciu tego samego loginu SQL. Chciałbym móc śledzić sesję SQL konkretnego użytkownika, ale nie znalazłem sposobu na określenie, które sesje SQL należą do którego użytkownika. Jestem jednak w stanie określić źródłowy port TCP, z którego korzysta każda instancja aplikacji.

Czy istnieje sposób na śledzenie sesji SQL na podstawie portu TCP klienta?

Bryan Voss
źródło

Odpowiedzi:

10

Czy istnieje sposób na śledzenie sesji SQL na podstawie portu TCP klienta?

Tak. Możesz wysłać zapytanie do sys.dm_exec_connections, aby zidentyfikować sesję z portu TCP klienta (kolumna client_tcp_port).

Na przykład:

SELECT DEC.session_id
FROM sys.dm_exec_connections AS DEC
WHERE DEC.client_net_address = '192.168.0.100'
AND DEC.client_tcp_port = 63465;
Paul White 9
źródło