Как получить имя пользователя домена при подключении через аутентификацию SQL - PullRequest
2 голосов
/ 08 октября 2010

У меня есть приложение, которое подключается к SQL Server 2000 (используя общий SQL Login и SQL Authentication). Я хотел бы реализовать некоторые регистрации через триггеры для отслеживания изменений данных. Я не могу использовать USER_NAME(), потому что это возвращает общий счет.

Я нажал на master..sysprocesses, и он, похоже, не записывает имя пользователя (хотя и записывает имя машины).

Есть идеи, как в SQL получить доступ к имени пользователя?

(Примечание: да, я мог бы передать его как переменную через приложение ... но это означало бы, что мне придется выкатить новую версию приложения; я пытаюсь сделать это из SQL так что я могу избежать этого, если это возможно.)

Ответы [ 2 ]

4 голосов
/ 08 октября 2010

Вы не можете. Просто. SQL Server вообще не знает конечного пользователя с логином SQL

То же самое относится и к прокси-серверу (веб-серверу и т. Д.): Вы не знаете конечного пользователя. Мы используем параметры / хранимые процедуры для передачи имени пользователя с веб-сервера.

Я бы предложил установить CONTEXT_INFO на клиенте, который сохраняется для этого соединения.

1 голос
/ 08 октября 2010

Вы пробовали SYSTEM_USER ?

SELECT SYSTEM_USER
...