2011-08-29 12 views
17

हमारे पास एक परीक्षण डेटाबेस और कुछ परीक्षण लॉग इन हैं जिन्हें हम एक स्क्रिप्ट के माध्यम से db_owner तक पहुंच देना चाहते हैं। आम तौर पर हमें लॉग इन में जाना होगा और उपयोगकर्ता नाम पर राइट क्लिक करना होगा और उपयोगकर्ता मैपिंग पर जाना होगा और इसे संबद्ध करने के लिए डेटाबेस का चयन करना होगा और इसे मालिक का उपयोग देना होगा और ठीक पर क्लिक करें।एसक्यूएल सर्वर डेटाबेस (0) db_owner डेटाबेस तक पहुंच

उत्तर

39

आप दो काम करने होंगे, दोनों लक्ष्य डेटाबेस के संदर्भ में चल रहा है (यानी, निष्पादित USE (database) पहले) : CREATE USER [LoginName] FOR LOGIN [LoginName]:

  1. डेटाबेस में लॉगिन के रूप कि उपयोगकर्ता जोड़ें सामान्य में, EXEC sp_addrolemember N'db_owner', N'LoginName'

, यदि आप SQL सर्वर प्रबंधन स्टूडियो 2005 या अधिक है, तो आप एक ऑपरेशन के लिए यूआई में जा सकते हैं (संवाद बॉक्स को भरने के इस मामले में: 210

  • भूमिका करने के लिए है कि उपयोगकर्ता जोड़ें उपयोगकर्ता को डेटाबेस & भूमिकाओं को जोड़ने के लिए असाइन करना), और फिर शीर्ष पर "स्क्रिप्ट" बटन पर क्लिक करें। आदेश को निष्पादित करने के बजाय, यह एक नई क्वेरी विंडो में कार्रवाई के लिए एक स्क्रिप्ट लिखेगा।

  • +1

    यदि उपयोगकर्ता पहले से मौजूद है तो पहले डेटाबेस में मैप किए जाने की आवश्यकता है और फिर sp_addrolemember SP चलाएं। क्या यह किया जा सकता है? – user516883

    +0

    डेटाबेस * के लिए मैपिंग * पहली क्वेरी है। यह मानता है कि एक लॉगिन (उपयोगकर्ता नाम/पासवर्ड) पहले से ही सर्वर पर बनाया गया है। आप लक्षित डेटाबेस में 'sys.database_principals' को देख कर जांच कर सकते हैं कि वे पहले ही मैप किए गए हैं या नहीं। – Tadmas

    +0

    धन्यवाद। बिल्कुल मुझे क्या चाहिए। – user516883

    7

    उपयोग sp_addrolemember

    EXEC sp_addrolemember 'db_owner', 'MyUser'

    +1

    मैंने कोशिश की है कि एक और यह संदेश 15410 का कहना है, स्तर 11, राज्य 1, प्रक्रिया sp_addrolemember, रेखा 75 उपयोगकर्ता या भूमिका 'क्यूए-Tester1' इस डेटाबेस में मौजूद नहीं है। – user516883

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