इस आलेख में, मैं SQL सर्वर में एक लिंक किए गए सर्वर को कॉन्फ़िगर करता हूं ताकि केवल एक स्थानीय लॉगिन इसे एक्सेस कर सके। ऐसा करने के लिए, मैं एकल स्थानीय लॉगिन के लिए लॉगिन मैपिंग जोड़ने से पहले, लिंक किए गए सर्वर बनाते समय स्वचालित रूप से बनाई गई किसी भी मैपिंग को हटा देता हूं।
लिंक किए गए सर्वर और लॉग इन मैपिंग को कॉन्फ़िगर करें
EXEC sp_addlinkedserver @server=N'Homer', @srvproduct=N'', @provider=N'MSOLEDBSQL', @datasrc=N'172.17.0.2', @catalog='Music'; EXEC sp_droplinkedsrvlogin 'Homer', NULL; EXEC sp_addlinkedsrvlogin @rmtsrvname=N'Homer', @useself=N'FALSE', @locallogin='Milhouse', @rmtuser=N'Maggie', @rmtpassword=N'BigStrong#Passw0rd';
यह उदाहरण होमर नामक एक लिंक्ड सर्वर बनाता है। इसके बाद मिलहाउस नामक विशिष्ट स्थानीय लॉगिन के लिए लॉगिन जोड़ने से पहले, स्वचालित रूप से बनाए गए सभी लॉगिन मैपिंग को छोड़ देता है।
हमारे उद्देश्यों के लिए, इस उदाहरण में प्रासंगिक पंक्ति है @locallogin='Milhouse'
. यह वह पंक्ति है जो निर्दिष्ट करती है कि निर्दिष्ट स्थानीय लॉगिन (इस मामले में 'मिलहाउस') के लिए लॉगिन मैपिंग बनाई जानी है।
अब Milhouse एकमात्र स्थानीय लॉगिन होगा जो लिंक किए गए सर्वर से कनेक्ट होने में सक्षम है।
यह कैसे काम करता है
जब आप sp_addlinkedserver
. का उपयोग करते हैं SQL सर्वर में एक लिंक्ड सर्वर बनाने के लिए, स्थानीय सर्वर पर सभी लॉगिन और लिंक किए गए सर्वर पर दूरस्थ लॉगिन के बीच एक डिफ़ॉल्ट मैपिंग स्वचालित रूप से बनाई जाती है। SQL सर्वर लॉगिन की ओर से लिंक किए गए सर्वर से कनेक्ट होने पर स्थानीय लॉगिन के क्रेडेंशियल का उपयोग करता है।
यह बहुत अच्छा है यदि आप वास्तव में ये मैपिंग चाहते हैं - यह आपको उन्हें स्पष्ट रूप से बनाने से बचाता है। लेकिन अगर आप नहीं उन्हें चाहते हैं, आपको sp_droplinkedsrvlogin
. का उपयोग करना होगा उन्हें हटाने के लिए। मैंने उपरोक्त उदाहरण में यही किया है।
एक बार जब आप सभी स्वचालित रूप से बनाए गए लॉगिन मैपिंग को छोड़ देते हैं, तो आप sp_addlinkedsrvlogin
का उपयोग करने के लिए स्वतंत्र हैं विशिष्ट स्थानीय लॉगिन के लिए मैपिंग जोड़ने के लिए।
सभी स्थानीय लॉगिन को लॉगिन मैपिंग साझा करने की अनुमति देना
आप इसे कॉन्फ़िगर भी कर सकते हैं ताकि सभी स्थानीय लॉगिन एक ही लॉगिन मैपिंग का उपयोग करें (ताकि यह केवल मिलहाउस तक ही सीमित न हो, उदाहरण के लिए)। साथ ही, प्रत्येक स्थानीय लॉगिन मानचित्र को संबंधित दूरस्थ लॉगिन में रखने के बजाय, वे उस लॉगिन का उपयोग कर सकते हैं जिसे आप लिंक किए गए सर्वर के लिए कॉन्फ़िगर करते हैं। ऐसा करने के लिए, बस @locallogin=NULL
set सेट करें . यह सभी स्थानीय लॉगिन को लिंक किए गए सर्वर से कनेक्ट करने की अनुमति देता है, भले ही उनके पास लिंक किए गए सर्वर पर संबंधित दूरस्थ लॉगिन हो या नहीं।
विभिन्न परिदृश्यों के तहत लिंक किए गए सर्वर लॉगिन तक पहुंचने की कोशिश कर रहे विभिन्न स्थानीय लॉगिन के उदाहरणों के लिए देखें कि लिंक किए गए सर्वर पर लॉगिन कैसे काम करते हैं।