从sql server获取Windows用户登录名

时间:2014-09-02 17:25:53

标签: sql sql-server tsql

我的数据库配置为使用登录名为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身份验证)

2 个答案:

答案 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())