基于客户端 TCP 端口的 SQL Server 跟踪

Bry*_*oss 9 security sql-server sql-server-2008-r2 trace

我有一个 Windows 终端服务器,其中有许多不同的用户通过 RDP 登录以运行应用程序。该应用程序为每个用户建立一个或多个到 SQL Server 2008 R2 实例的连接。所有用户使用相同的 SQL 登录访问相同的数据库。我希望能够跟踪特定用户的 SQL 会话,但我还没有找到确定哪个 SQL 会话属于哪个用户的方法。但是,我能够确定应用程序的每个实例正在使用的源 TCP 端口。

有没有办法根据客户端的 TCP 端口跟踪 SQL 会话?

Pau*_*ite 10

有没有办法根据客户端的 TCP 端口跟踪 SQL 会话?

是的。您可以查询sys.dm_exec_connections以识别来自客户端 TCP 端口(列client_tcp_port)的会话。

例如:

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;
Run Code Online (Sandbox Code Playgroud)