Trace SQL Server basée sur le port TCP client

9

J'ai un serveur Terminal Server Windows avec de nombreux utilisateurs différents qui se connectent via RDP pour exécuter une application. L'application établit une ou plusieurs connexions par utilisateur à une instance SQL Server 2008 R2. Tous les utilisateurs accèdent à la même base de données en utilisant la même connexion SQL. Je voudrais pouvoir tracer la session SQL d'un utilisateur particulier, mais je n'ai pas trouvé de moyen de déterminer quelle (s) session (s) SQL appartient à quel utilisateur. Cependant, je peux déterminer le port TCP source utilisé par chaque instance de l'application.

Existe-t-il un moyen de tracer une session SQL en fonction du port TCP du client?

Bryan Voss
la source

Réponses:

10

Existe-t-il un moyen de tracer une session SQL en fonction du port TCP du client?

Oui. Vous pouvez interroger sys.dm_exec_connections pour identifier une session à partir du port TCP du client (colonne client_tcp_port).

Par exemple:

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
la source