2008-10-02 6 views

उत्तर

95

मैंने इसे समझ लिया। एसक्यूएल प्रबंधन स्टूडियो के भीतर आपको डेटाबेस -> गुण -> फ़ाइलें -> स्वामी फ़ील्ड पर राइट-क्लिक करना होगा। इस फ़ील्ड को उस लॉगिन नाम/खाते में बदलें जिसे आप उस डेटाबेस के लिए "dbo" उपयोगकर्ता नाम से जोड़ना चाहते हैं। कृपया ध्यान रखें कि आपके द्वारा चुने गए लॉगिन नाम/खाते को सुरक्षा के तहत एसक्यूएल सर्वर में पहले से ही सेटअप किया जाना चाहिए -> लॉग इन

+8

मुझे यह जानने की जरूरत है, 2 साल बाद - धन्यवाद। – Hogan

+0

एक महान खोज है! +1 – Sprintstar

+15

या कोड के माध्यम से एक ही परिवर्तन करें: कुछ डीबी का उपयोग करें; जाओ; exec sp_changedbowner 'newOwner' –

0

यह एक विंडोज लॉगिन है, एक SQL सर्वर लॉगिन नहीं है, इसलिए आप लॉगिन नाम 'नहीं बदल सकते हैं क्योंकि यह सक्रिय निर्देशिका में उपयोगकर्ता खाते से जुड़ा हुआ है।

नए विंडोज़ उपयोगकर्ता (मैप) को नए विंडोज उपयोगकर्ता में मैप किया गया (और यदि आवश्यक हो तो पुराना हटा दें)। फिर लॉगिन की सुरक्षा में> उपयोगकर्ता मानचित्रण, अनुमति है कि उपयोगकर्ता 'dbo' के रूप में उपयुक्त डेटाबेस के लिए लॉग इन (या db_owner भूमिका के लिए असाइन)

+1

मुझे संदेह है कि आप SQL सर्वर सुरक्षा मॉडल को ठीक से समझ नहीं रहे हैं। * पूरे सर्वर इंस्टेंस * में ** लॉग इन ** सर्वर से जुड़े हैं। ये एसक्यूएल या विंडोज लॉग इन हो सकते हैं। सर्वर पर प्रत्येक डेटाबेस में उस डेटाबेस तक पहुंचने के लिए अनुमतियों के साथ ** ** ** ** हैं। डेटाबेस ** उपयोगकर्ता ** एक SQL ** लॉगिन ** से जुड़ा हुआ है जो आमतौर पर (लेकिन होने की आवश्यकता नहीं होती) होती है। ** डीबीओ ** प्रत्येक डेटाबेस पर एक * विशेष उपयोगकर्ता * है। ओपी डाटाबेस के db_owner अधिकारों के साथ एक नए मनमानी उपयोगकर्ता की कोशिश नहीं कर रहा है - वह मानक ** dbo ** उपयोगकर्ता के साथ एक अलग सर्वर लॉगिन को जोड़ने की कोशिश कर रहा है। –

5

आप एक डाटाबेस उपयोगकर्ता के लिए एक लॉगिन पुन: मैप करने की कोशिश कर रहे हैं, तो आप

sp_change_user_login उपयोग कर सकते हैं

exec sp_change_user_login 'Update_One', 'user', 'login'

+1

स्पोक 'sp_change_users_login' (यानी _users_) प्रतीत होता है। एफओआई बीओएल यह भी कहता है कि इसे बहिष्कृत किया गया है और भविष्य में इसके बजाय वैकल्पिक उपयोगकर्ता का उपयोग किया जाना चाहिए। –

+1

हालांकि आमतौर पर यह काम करेगा, संग्रहित proc काफी विशेष रूप से ** ** ** ** dbo ** उपयोगकर्ता को इस तरीके से बदलने का प्रयास अस्वीकार करता है। –

0

पैंटोम टाइपिस्ट जीयूआई का उपयोग करके एक अच्छा जवाब देता है। टीएसक्यूएल के साथ एक ही परिणाम प्राप्त करने के लिए, आप इस कोड का उपयोग कर सकते हैं:

USE [My_Database_Name] 
GO 
EXEC dbo.sp_changedbowner @loginame = N'domain\abc', @map = false 
GO 
संबंधित मुद्दे