Получить имя пользователя 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())