Трассировка SQL Server на основе клиентского TCP-порта

9

У меня есть терминальный сервер Windows с множеством разных пользователей, которые входят в систему через RDP для запуска приложения. Приложение устанавливает одно или несколько подключений на пользователя к экземпляру SQL Server 2008 R2. Все пользователи получают доступ к одной и той же базе данных, используя один и тот же логин SQL. Я хотел бы иметь возможность отслеживать сеанс SQL конкретного пользователя, но я не нашел способа определить, какой сеанс (ы) SQL принадлежит тому или иному пользователю. Однако я могу определить исходный порт TCP, который использует каждый экземпляр приложения.

Есть ли способ отследить сеанс SQL на основе TCP-порта клиента?

Брайан Восс
источник

Ответы:

10

Есть ли способ отследить сеанс SQL на основе TCP-порта клиента?

Да. Вы можете запросить 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;
Пол Уайт 9
источник