समस्या यह है कि पुनर्स्थापना db उपयोगकर्ताओं को मूल सर्वर उदाहरण से वापस लाती है लेकिन नए उदाहरण में आमतौर पर उन उपयोगकर्ता लॉगिन के बारे में कुछ नहीं पता होता है। आप उन्हें db स्तर पर सुरक्षा के तहत देखेंगे, लेकिन उनके पास संबंधित सर्वर स्तर लॉगिन नहीं है।
आपको डेटाबेस उपयोगकर्ताओं को उस सर्वर लॉगिन पर रीटच करने की आवश्यकता है, जिस पर आपने डेटाबेस को पुनर्स्थापित किया था।
इसके बारे में जाने के कुछ तरीके हैं:
नए उदाहरण पर उनके लिए नए लॉगिन बनाएं। फिर आपको उन्हें नए उदाहरण पर डेटाबेस उपयोगकर्ताओं के रूप में निकालना होगा और अपने नए लॉगिन जोड़ना होगा। यह अजीब लगता है कि आप एक ही लॉगिन नाम बना सकते हैं, लेकिन SID (सुरक्षा पहचानकर्ता) अलग-अलग होंगे और यही SQL उपयोगकर्ता की पहचान के लिए उपयोग करता है। यह एक या दो लॉगिन के लिए काफी आसान है।
यदि आप उन्हीं उपयोगकर्ताओं को बनाए रखना चाहते हैं, जो SID के उदाहरणों के पार रखते हैं, तो sp_help_revlove संग्रहीत कार्यविधि का उपयोग करें । उस लिंक से कोड को कॉपी करें जो आवश्यक संग्रहीत प्रक्रियाएं बनाएगा और इसे उस सर्वर पर चलाएगा जिसे आप उपयोगकर्ताओं से कॉपी करना चाहते हैं। यह एक एसक्यूएल स्क्रिप्ट उत्पन्न करेगा जिसे आप अपने लक्षित सर्वर पर चला सकते हैं ताकि एसआईडी, पासवर्ड, सब कुछ ले जाने वाले उपयोगकर्ताओं को बनाया जा सके। यदि आप बहुत से डेटाबेस उपयोगकर्ताओं को लक्ष्य आवृत्ति पर पुन: कनेक्ट करने की आवश्यकता है या यदि आप स्रोत उदाहरण पर एक या अधिक SQL लॉगिन पासवर्ड नहीं जानते हैं, तो जाने का यह तरीका है।
EXEC sp_change_users_login 'Auto_Fix', 'User', NULL, 'password';
इसके बजाय। :)