2011-07-06 14 views
20

私はSELECT SUSER_SNAME()を使用して現在のユーザー名を取得できます。しかし、AD環境では、ドメイン(例えば、 "MyDomain \ User")を含むユーザーを取得します。SQL Server:ドメインなしで現在のユーザーを取得

ドメインを除くユーザー名を受信する機能はありますか?当然の

答えて

25
SELECT nt_username FROM sys.sysprocesses WHERE spid = @@SPID 

または

SELECT nt_user_name FROM sys.dm_exec_sessions WHERE session_id = @@SPID 
+3

SQL Server 2008 R2には、 'sys.dm_exec_sessions'の列名として' nt_user_name'があります。 – Guvante

+0

これには、ユーザーがアクセスできない追加の権限が必要です – igorjrr

22
select stuff(suser_sname(), 1, charindex('\', suser_sname()), '') 
+2

私は、返された文字列を解析することができ、私はそれがないので、私はこの方法を好む;-) –

+1

を解析する代わりに、文字列のものに建て使用して好きセッションを持つログインに依存します。それはあなたが綴ることができる任意の名前のために働く。 –

+0

@IainElderどのような状況でセッションを持たないのですか? – Jodrell

関連する問題