2011-07-06 17 views
20

मुझे पता है कि मैं वर्तमान उपयोगकर्ता नाम प्राप्त करने के लिए SELECT SUSER_SNAME() का उपयोग कर सकता हूं। लेकिन एक एडी पर्यावरण में मुझे डोमेन सहित उपयोगकर्ता मिल जाएगा (उदा। "MyDomain \ User")।SQL सर्वर: डोमेन के बिना वर्तमान उपयोगकर्ता प्राप्त करें

क्या डोमेन को छोड़कर उपयोगकर्ता नाम प्राप्त करने के लिए कोई फ़ंक्शन है?

उत्तर

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 सर्वर 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

संबंधित मुद्दे