SQL Server user name functions -


इस टी-एसक्यूएल पर विचार करें:

  लॉगिन के बिना उपयोगकर्ता my_test_user बनाएं; SELECT USER_NAME (), USER, SUSER_SNAME (), SYSTEM_USER, suser_name (); USER के रूप में EXECUTE = 'my_test_user' कोई रिवर्स के साथ; SELECT USER_NAME (), USER, SUSER_SNAME (), SYSTEM_USER, suser_name ();  

मैं इन खातों का उपयोग देख रहा हूं लॉगिंग के बिना ऑडिटिंग उद्देश्यों के लिए असल में, मेरा "एक डेटाबेस कनेक्शन प्राप्त" कोड उस कनेक्शन को देता है जिस पर EXECUTE उपयोगकर्ता के रूप में उपयोग किया जाता है ... कोई भी रिवर्स के साथ पहले ही निष्पादित हो चुका है।

समस्या यह है कि मैं इन उपयोगकर्ता नाम कार्यों में से किसी एक से लगातार परिणाम प्राप्त नहीं आउटपुट की दो पंक्तियां हैं:

 डीबो डीबो मूल_जुर मूल_जुर मूल_जुर my_test_user my_test_user S-1- 9-3-xxxxx .. S-1- 9-3-XXXXX .. एस -1- 9-3 -xxXXX .. 

USER फ़ंक्शन 'एक्सी्यूट एएस' के बाद सही उत्पादन का उत्पादन करते हैं, लेकिन पहले से ही वे उपयोगकर्ता नाम के बजाय डीबी दिखा रहे हैं SUSER फ़ंक्शंस केवल विपरीत हैं - वे शुरू में सही हैं, लेकिन प्रतिरूपण के बाद वे कुछ प्रकार की आईडी दिखा रहे हैं

MSDN दस्तावेज़ स्पष्ट रूप से एक उदाहरण देते हैं जहां यह है

अपडेट करें: जो मैं देख रहा हूं वह एक ऐसा कार्य है जो पहले मामले में 'मूल_उज़र' और दूसरे में 'my_test_user' उत्पन्न करेगा।

अपडेट: आपको यहां भी एफएन की आवश्यकता है

मूल:

बाद में, कोई मिलान सिस्टम स्तर उपयोगकर्ता नहीं है इसलिए, यह डेटाबेस स्तर की समस्या को हल नहीं कर सकता है, इसलिए यह केवल एसआईडी को

  उपयोगकर्ता के बिना लॉग इन किए बिना my_test_user देता है; SELECT USER_NAME (), USER, SUSER_SNAME (), SYSTEM_USER, suser_name (); USER के रूप में EXECUTE = 'my_test_user' कोई रिवर्स के साथ; SELECT USER_NAME (), USER, SUSER_SNAME (), SYSTEM_USER, suser_name (), SUSER_SID (); SES.database_principals से SELECT * FROM WHERE sid = SUSER_SID ();  

मुझे नहीं पता कि यह डिज़ाइन से है, लेकिन यह बताता है कि संख्या कहां से आता है।

नोट:

  • आपको USER_NAME के ​​लिए डीबो मिलेगा () क्योंकि आप सिसैडमिन अधिकारों के साथ लॉग इन हैं I डीबी स्तर उपयोगकर्ता फ़ंक्शंस का उपयोग करते समय "sysadmin" हर कोई डीबी है।

  • उपयोगकर्ता संदर्भ को बदलने के बाद, डेटाबेस उपयोगकर्ता के संदर्भ में डीबी स्तर उपयोगकर्ता फ़ंक्शंस हल करता है


Comments

Popular posts from this blog

asp.net - Javascript/DOM Why is does my form not support submit()? -

sockets - Delphi: TTcpServer, connection reset when reading -

javascript - Classic ASP "ExecuteGlobal" statement acting differently on two servers -