我的数据库配置为使用登录名为sa
的SQL Server身份验证。现在我想知道用户的 Windows 登录用户名是什么。 SA将为每个人提供服务。我能够获得计算机的IP地址和计算机名称,但我迫切需要用户的Windows登录用户名。我的网络是使用活动目录btw设置的。
set @UserComputerIP = CONVERT(varchar(20),CONNECTIONPROPERTY('client_net_address'))
set @UserComputerName = CONVERT(varchar(20),HOST_NAME())
任何帮助将不胜感激。 (Ps.No我无法在SQL Server中切换到Windows身份验证)
答案 0 :(得分:1)
如果您不使用Windows身份验证,我不确定您是否可以获取域用户名。
我所知道的最详细信息是系统表/视图,如果使用SQL登录连接,则不显示NT用户名。即使服务器处于混合身份验证模式。
在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身份验证进行连接,则两者都将显示空列。
答案 1 :(得分:0)
你试过下面的命令会给你NT ID
SELECT CONVERT(varchar(20),suser_sname())