SQL Server Profiler показывает NtUsername. Как мне увидеть имя NTuser в триггере?
Я не понимаю. SQL Server Profiler показывает имя пользователя Windows. SUSER_NAME, SUSER_SNAME ORIGINAL_LOGIN, USER, USER_NAME показывает имя пользователя учетной записи пользователя SQL. Я хочу то, что показывает Профилировщик. Должен быть способ, если профилировщик может это сделать.
Вы используете SUSER_SNAME().Не SUSER_NAME().Обратите внимание, что дополнительные S
SUSER_SNAME()
SUSER_NAME()
S
SUSER_SNAME
SUSER_NAME
sys.server_principals.principal_id
SUSER_NAME даст NULL для пользователя Windows, который подключается через группу Windows,потому что только в группе Windows есть запись в sys.server_principals
sys.server_principals
Примечания:
Так как я не мог найти, как получить NTUsername, я использовал HOST_NAME (), который дал мне имя компьютера пользователя.
SUSER_NAME, SUSER_SNAME, ORIGINAL_LOGIN, USER, USER_NAME все дали мне имя пользователя учетной записи SQL.
Похоже, что протокол, используемый в вашем случае, был NamedPipes.
- см. http://sqlbg.wordpress.com/2011/05/28/how-to-check-what-sql-server-network-protocol-is-used-by-connections/
Между NTUserName нет никакой корреляции, если только логин не является аутентификационным логином Windows.Но поскольку suser_name() не возвращает то, что вы хотите, я предполагаю, что вы используете аутентификацию SQL Server.
suser_name()
В этом случае я не верю, что вы можете сделать это.