我知道我可以使用SELECT SUSER_SNAME()
获取当前用户名。但在AD环境中,我会得到包含域的用户(例如“MyDomain \ User”)。SQL Server:获取当前没有域名的用户
是否有任何功能只接收不包含域名的用户名?
我知道我可以使用SELECT SUSER_SNAME()
获取当前用户名。但在AD环境中,我会得到包含域的用户(例如“MyDomain \ User”)。SQL Server:获取当前没有域名的用户
是否有任何功能只接收不包含域名的用户名?
SELECT nt_username FROM sys.sysprocesses WHERE spid = @@SPID
或
SELECT nt_user_name FROM sys.dm_exec_sessions WHERE session_id = @@SPID
当然
select stuff(suser_sname(), 1, charindex('\', suser_sname()), '')
我可以解析返回的字符串,但我喜欢使用内置的东西,而不是字符串解析;-) –
我喜欢这种方法,因为它不取决于具有会话的登录。它适用于任何你可以拼写的名字。 –
@IainElder在什么情况下你没有会议? – Jodrell
SQL Server 2008 R2有'nt_user_name'作为'sys.dm_exec_sessions'的列名。 – Guvante
这需要用户可能无权访问的其他权限 – igorjrr