Получить имя пользователя Windows для входа с сервера SQL

Моя база данных настроена на использование аутентификации сервера SQL с именем входа sa, Теперь я хотел бы знать, что такое имя пользователя для входа в Windows. SA будет там для всех. Мне удалось получить IP-адрес компьютера и имя компьютера, но мне крайне необходимо имя пользователя для входа в Windows. Моя сеть настроена с использованием активного каталога между прочим.

set @UserComputerIP = CONVERT(varchar(20),CONNECTIONPROPERTY('client_net_address')) 
set @UserComputerName = CONVERT(varchar(20),HOST_NAME())

Любая помощь будет оценена. (Ps. Нет, я не могу переключиться на проверку подлинности Windows в SQL Server)

2 ответа

Я не уверен, что вы можете получить имя пользователя домена, если вы не используете проверку подлинности Windows.

Самая подробная информация, о которой я знаю, - это системные таблицы / представления, и они не показывают имя пользователя NT, если вы подключились с использованием входа в SQL. Даже если сервер находится в смешанном режиме аутентификации.

На пред-SQL Server 2008:

select nt_username from master.sys.sysprocesses where spid = @@spid

Начиная с SQL Server 2008:

select nt_user_name from sys.dm_exec_sessions where session_id = @@spid

Оба будут показывать пустой столбец, если вы подключились с использованием аутентификации SQL.

Вы пробовали ниже команда даст вам NT ID

SELECT CONVERT(varchar(20),suser_sname())
Другие вопросы по тегам