SQL सर्वर में, मैं किसी मौजूदा उपयोगकर्ता के लिए लॉगिन कैसे बनाऊं?


17

मैंने एक SQL सर्वर इंस्टेंस से एक डेटाबेस को एक अलग SQL सर्वर इंस्टेंस पर पुनर्स्थापित किया। डेटाबेस पहले से ही उपयोगकर्ताओं को इसमें जोड़ा गया है। लेकिन उनके पास नए SQL सर्वर उदाहरण के लिए लॉगिन नहीं है।

मुझे पता है कि नए उपयोगकर्ताओं के लिए नए लॉगिन कैसे बनाएं, लेकिन मैं मौजूदा उपयोगकर्ताओं के लिए लॉगिन कैसे बनाऊं?

जवाबों:


9

समस्या यह है कि पुनर्स्थापना db उपयोगकर्ताओं को मूल सर्वर उदाहरण से वापस लाती है लेकिन नए उदाहरण में आमतौर पर उन उपयोगकर्ता लॉगिन के बारे में कुछ नहीं पता होता है। आप उन्हें db स्तर पर सुरक्षा के तहत देखेंगे, लेकिन उनके पास संबंधित सर्वर स्तर लॉगिन नहीं है।

आपको डेटाबेस उपयोगकर्ताओं को उस सर्वर लॉगिन पर रीटच करने की आवश्यकता है, जिस पर आपने डेटाबेस को पुनर्स्थापित किया था।

इसके बारे में जाने के कुछ तरीके हैं:

  1. नए उदाहरण पर उनके लिए नए लॉगिन बनाएं। फिर आपको उन्हें नए उदाहरण पर डेटाबेस उपयोगकर्ताओं के रूप में निकालना होगा और अपने नए लॉगिन जोड़ना होगा। यह अजीब लगता है कि आप एक ही लॉगिन नाम बना सकते हैं, लेकिन SID (सुरक्षा पहचानकर्ता) अलग-अलग होंगे और यही SQL उपयोगकर्ता की पहचान के लिए उपयोग करता है। यह एक या दो लॉगिन के लिए काफी आसान है।

  2. यदि आप उन्हीं उपयोगकर्ताओं को बनाए रखना चाहते हैं, जो SID के उदाहरणों के पार रखते हैं, तो sp_help_revlove संग्रहीत कार्यविधि का उपयोग करें । उस लिंक से कोड को कॉपी करें जो आवश्यक संग्रहीत प्रक्रियाएं बनाएगा और इसे उस सर्वर पर चलाएगा जिसे आप उपयोगकर्ताओं से कॉपी करना चाहते हैं। यह एक एसक्यूएल स्क्रिप्ट उत्पन्न करेगा जिसे आप अपने लक्षित सर्वर पर चला सकते हैं ताकि एसआईडी, पासवर्ड, सब कुछ ले जाने वाले उपयोगकर्ताओं को बनाया जा सके। यदि आप बहुत से डेटाबेस उपयोगकर्ताओं को लक्ष्य आवृत्ति पर पुन: कनेक्ट करने की आवश्यकता है या यदि आप स्रोत उदाहरण पर एक या अधिक SQL लॉगिन पासवर्ड नहीं जानते हैं, तो जाने का यह तरीका है।


10

मैं हमेशा डेटाबेस अपडेट को सर्वर लॉगिन से लिंक करने के लिए 'Update_One' कार्रवाई के साथ sp_change_users_login कमांड चलाता हूं :

sp_change_users_login 'Update_One', 'database user', 'server login'


कूल मैंने इसका उपयोग किया है: EXEC sp_change_users_login 'Auto_Fix', 'User', NULL, 'password';इसके बजाय। :)
user2173353

क्या यह केवल तभी संभव है जब आपके पास डेटाबेस उपयोगकर्ता और सर्वर लॉगिन दोनों हों लेकिन उनके बीच की कड़ी टूटी हुई हो?
wenzzzel

2

जो मुझे मिला वह यहां है।

स्क्विलमैन के निष्कासित होते ही, उपयोगकर्ता डेटाबेस के साथ कॉपी कर लेते हैं, लेकिन लॉगिन नहीं करते हैं। एक स्टोर procdure है जिसे sp_change_users_login कहा जाता है जिसका उपयोग आप समस्या को हल करने के लिए कर सकते हैं। ऐसा करने के लिए कदम इस अंकल में विस्तृत हैं । स्टोर की खरीद का उपयोग करने का विवरण इस पृष्ठ पर पाया जा सकता है ।


2

SQL सर्वर 2012 के अनुसार, मौजूदा उपयोगकर्ताओं को नए लॉगिन पर असाइन करने के लिए एक T-SQL कमांड है। लॉगिन बनाएं, लेकिन उपयोगकर्ता मैपिंग करने की कोशिश न करें (यह विफल हो जाएगा)। फिर निष्पादित करें:

use <existing_database>;
alter user <existing_database_user> with login = <newly_created_login>;

यह नए उपयोगकर्ता के लिए मौजूदा लॉगिन को मैप करेगा। यहाँ एसक्यूएल प्रलेखन: https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-user-transact-sql?view=sql-server-2017

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.