2009-01-20 10 views
9

मैंने बैक अप लिया है और एक नए सर्वर पर एक एमएस SQL ​​सर्वर 2005 डेटाबेस को पुनर्स्थापित किया है।किसी भिन्न सर्वर पर बैकअप को पुनर्स्थापित करना - उपयोगकर्ता अनुमतियां

लॉगिन, उपयोगकर्ता और उपयोगकर्ता अनुमतियों को पुनर्जीवित करने का सबसे अच्छा तरीका क्या है?

SQL सर्वर 2000 के एंटरप्राइज़ मैनेजर पर मैं लॉग इन स्क्रिप्ट करने में सक्षम था, उपयोगकर्ताओं को स्क्रिप्ट और स्क्रिप्ट उपयोगकर्ता को सभी अलग-अलग अनुमति देता था। मैं फिर एक के बाद एक चला सकता था और एकमात्र शेष मैनुअल चरण लॉगिन पासवर्ड सेट करना था (जो सुरक्षा कारणों से स्क्रिप्ट नहीं है)

यह SQL सर्वर 2005 के प्रबंधन स्टूडियो में संभव नहीं लगता है, सब कुछ बहुत ही कमजोर बनाता है और बहुत समय लगेगा। (मैं पूरे डेटाबेस को स्क्रिप्ट करने के लिए समाप्त होता हूं, नए डेटाबेस से सभी लॉग इन और उपयोगकर्ताओं को हटाता हूं, स्क्रिप्ट चलाता हूं, और फिर त्रुटि संदेश के मिश्रण के माध्यम से ट्रैवल करता हूं कि यह देखने के लिए कि क्या काम किया और क्या नहीं किया।)

करता है किसी के पास इस पर कोई अनुभव और सिफारिशें हैं?

उत्तर

14

ऐसा करने का सबसे आसान तरीका माइक्रोसॉफ्ट के sp_help_revlogin के साथ है, एक संग्रहीत प्रक्रिया जो सभी SQL सर्वर लॉगिन, डिफ़ॉल्ट और पासवर्ड को स्क्रिप्ट करता है, और एक ही एसआईडी रखता है।

आप इस ज्ञान का आधार लेख में पा सकते हैं:

:

EXEC sp_change_users_login 'Report' 

यह उदाहरण के लिए सभी अनाथ उपयोगकर्ताओं की सूची दिखाएगा,:

http://support.microsoft.com/kb/918992

+0

हालांकि उपयोगकर्ता अनुमतियों को प्रकट नहीं करता है। (जैसे अनुदान सटीक और अनुदान चयन, इत्यादि) – MatBailie

+0

दाएं, क्योंकि यह प्रत्येक व्यक्तिगत डेटाबेस में निहित है, सर्वर स्तर पर नहीं। यदि आप डेटाबेस का बैक अप लेते हैं, तो पुराने सर्वर पर sp_help_revlogin करें, नए सर्वर पर जेनरेट किए गए टी-एसक्यूएल का उपयोग करें, और फिर पुनर्स्थापना करें, आप कर चुके हैं। –

+0

पुनर्स्थापित डेटाबेस में "उपयोगकर्ता" अभी भी अपने "लॉगिन" से अनाथ दिखाई देते हैं। – MatBailie

0

मैं लाल गेट (http://www.red-gate.com/products/SQL_Compare/index.htm) से एसक्यूएल तुलना उत्पाद का उपयोग करता हूं। आसपास के अन्य समान उत्पाद हैं लेकिन मेरे पास एसक्यूएल तुलना के रूप में किसी को देखने का कोई कारण नहीं है, मुझे कभी भी नीचे जाने नहीं दिया है।

आपको यह पता चलेगा कि यह आपकी वर्तमान आवश्यकता से बहुत अधिक उपयोगी है क्योंकि यह सभी प्रकार की डेटाबेस ऑब्जेक्ट को सिंक्रनाइज़ करने में मदद करेगा, न केवल लॉगिन और अनुमतियां।

+0

हमारे पास एक समान "डेटाबेस अंतर" उपकरण है। दुर्भाग्यवश हमारे ग्राहक नहीं ... – MatBailie

2

इस भागो enter image description here

अब प्रत्येक उपयोगकर्ता के लिए यहां इस स्क्रिप्ट को निष्पादित करें, उदाहरण के लिए

exec sp_change_users_login 'Update_One', 'UserNameExample', 'UserNameExample' 

यह मेरी समस्या को ठीक करता है।

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