2012-12-10 9 views
6

मेरे पास एक पावरहेल स्क्रिप्ट है जो विंडोज उपयोगकर्ता के संदर्भ में निष्पादित होती है। इस उपयोगकर्ता के पास SQL ​​2012 उदाहरण पर लॉगिन है जो sysadmin सर्वर भूमिका का सदस्य है।SQL सर्वर 2012 में sysadmin सर्वर भूमिका में मैं Windows उपयोगकर्ता को कैसे जोड़ूं?

मैं चाहता हूं कि स्क्रिप्ट एसक्यूडमिन सर्वर भूमिका में SQL इंस्टेंस (जिसमें एक संबंधित विंडोज उपयोगकर्ता भी है) पर एक और लॉगिन जोड़ना चाहें।

प्रबंधन स्टूडियो में इस आज़माने के लिए (एसए के रूप में जुड़े), मैं निम्न स्क्रिप्ट का उपयोग कर रहा:

execute as user = 'domain\currentsysadmin' 

IF IS_SRVROLEMEMBER('sysadmin', 'domain\futuresysadmin') != 1 
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [domain\futuresysadmin] 

revert 

मैं दो मुद्दों यहाँ है:

  1. जब मैं स्क्रिप्ट चलाने जैसा कि यह यहां प्रदर्शित किया गया है, IS_SRVROLEMEMBER पर कॉल अपेक्षित के रूप में 0 लौटाता है, लेकिन डोमेन \ currentsysadmin लॉगिन sysadmin का सदस्य है, फिर भी सर्वर सेवर रोल पर कॉल लौटाता है:

    एमएस जी 15151, स्तर 16, राज्य 1, रेखा 8 सर्वर भूमिका 'sysadmin' को परिवर्तित नहीं कर सकता, क्योंकि यह अस्तित्व में नहीं है या आपके पास अनुमति नहीं है।

  2. जब मैं बयान रूप में निष्पादित बिना एसए के संदर्भ में इस चलाने के लिए, ALTER सर्वर भूमिका बयान सफलतापूर्वक चलाने के लिए प्रकट होता है, लेकिन जब मैं डोमेन \ futuresysadmin लॉगिन जाँच, यह अभी भी sysadmin भूमिका का सदस्य नहीं है

मैं sysadmin सर्वर भूमिका में डोमेन \ futuresystem लॉगिन कैसे जोड़ सकता हूं?

+0

क्या कोई मुझे इस बात का संकेत दे सकता है कि यह प्रश्न क्यों कम किया गया है और बंद कर दिया गया है? मैं यहाँ snarky नहीं हूँ - यह स्टैक ओवरफ़्लो पर मेरा पहला सवाल है, इसलिए मैं समझना चाहता हूं कि यह मेरे प्रश्न के बारे में क्या है जो विषय बंद है। – drewmullet

उत्तर

4

उपयोग sp_addsrvrolemember:

EXEC master..sp_addsrvrolemember @loginame = N'domain\futuresysadmin', @rolename = N'sysadmin' 

अद्यतन: उपयोगकर्ता संदर्भ स्विचिंग सिस्टम प्रशासक की तरह, किसी भी सर्वर भूमिकाओं के वारिस नहीं है। दस्तावेज़ीकरण को पढ़ने में: "उपयोगकर्ता टोकन में या भूमिका सदस्यता के माध्यम से पहचान के लिए स्पष्ट रूप से प्रदान की गई सर्वर-स्तरीय अनुमतियां सम्मानित नहीं होती हैं।" जब आप उपयोगकर्ता संदर्भ स्विच करते हैं, तो आपके उपयोगकर्ता को अब किसी अन्य उपयोगकर्ता को sysadmin देने का अधिकार नहीं है।

+0

धन्यवाद जेवीसी। यह मेरी समझ है हालांकि भूमिका सदस्यों को जोड़ने का यह तरीका अब बहिष्कृत किया गया है और यह कि सर्वर सर्वर को आगे बढ़ने का नया तरीका माना जाता है - http://msdn.microsoft.com/en-us/library/ms186320.aspx देखें। – drewmullet

+0

इसके अलावा, जब मैं अल्टर सर्वर रोल स्टेटमेंट के स्थान पर उपर्युक्त उपयोग करता हूं, तो मुझे वही मिलता है "संदेश 15151, स्तर 16, राज्य 1, रेखा 8 सर्वर भूमिका 'sysadmin' को परिवर्तित नहीं कर सकता, क्योंकि यह अस्तित्व में नहीं है या आप करते हैं अनुमति नहीं है। " विवरण में त्रुटि के रूप में। – drewmullet

+1

मुझे नहीं लगता कि यह काम करेगा। उपयोगकर्ता संदर्भ स्विचिंग sysadmin की तरह किसी भी सर्वर भूमिका का वारिस नहीं करता है। दस्तावेज़ीकरण को पढ़ने में "उपयोगकर्ता टोकन में या भूमिका सदस्यता के माध्यम से पहचान के लिए स्पष्ट रूप से दी गई सर्वर-स्तरीय अनुमतियां सम्मानित नहीं होती हैं।" जब आप उपयोगकर्ता संदर्भ स्विच करते हैं, तो आपके उपयोगकर्ता को अब किसी अन्य उपयोगकर्ता को sysadmin देने का अधिकार नहीं है। – JVC

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