SQL Server-Trace basierend auf dem Client-TCP-Port

9

Ich habe einen Windows-Terminalserver mit vielen verschiedenen Benutzern, die sich über RDP anmelden, um eine Anwendung auszuführen. Die Anwendung stellt pro Benutzer eine oder mehrere Verbindungen zu einer SQL Server 2008 R2-Instanz her. Alle Benutzer greifen mit derselben SQL-Anmeldung auf dieselbe Datenbank zu. Ich möchte die SQL-Sitzung eines bestimmten Benutzers verfolgen können, habe jedoch keine Möglichkeit gefunden, festzustellen, welche SQL-Sitzung (en) zu welchem ​​Benutzer gehören. Ich kann jedoch den Quell-TCP-Port ermitteln, den jede Instanz der Anwendung verwendet.

Gibt es eine Möglichkeit, eine SQL-Sitzung basierend auf dem TCP-Port des Clients zu verfolgen?

Bryan Voss
quelle

Antworten:

10

Gibt es eine Möglichkeit, eine SQL-Sitzung basierend auf dem TCP-Port des Clients zu verfolgen?

Ja. Sie können sys.dm_exec_connections abfragen , um eine Sitzung über den TCP-Port (Spalte client_tcp_port) des Clients zu identifizieren .

Zum Beispiel:

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
quelle