प्रमाणीकरण किसी भी सुरक्षा रणनीति का एक महत्वपूर्ण घटक है। आज, हम SQL सर्वर प्रमाणीकरण पर चर्चा करने जा रहे हैं और आपके SQL सर्वर वातावरण को सुरक्षित करने के लिए यह कैसे आवश्यक है, और Windows प्रमाणीकरण की भूमिका क्या है।
कनेक्शन स्थापित करना
यह सब एक कनेक्शन से शुरू होता है। एक सफल डेटाबेस कनेक्शन स्थापित करने के लिए, क्लाइंट या एप्लिकेशन को निम्नलिखित जानकारी की आवश्यकता होती है:
- SQL सर्वर पूरी तरह से योग्य डोमेन नाम
- उदाहरण का नाम
- पोर्ट नंबर
- प्रमाणीकरण के लिए क्रेडेंशियल (उपयोगकर्ता नाम और पासवर्ड)
उदाहरण के लिए, मान लीजिए कि आप ऑनलाइन बैंकिंग का उपयोग करते हैं। अपने खाते तक पहुंचने के लिए, आपको प्रमाणीकरण उद्देश्यों के लिए क्रेडेंशियल दर्ज करना होगा। जब आप मान्य क्रेडेंशियल प्रदान करते हैं और सत्यापन पर इसकी सेवाओं तक पहुंच की अनुमति देते हैं तो बैंक आपकी पहचान करता है।
इसी तरह, SQL सर्वर में लॉग इन करते समय, उपयोगकर्ताओं को मान्य क्रेडेंशियल निर्दिष्ट करने की आवश्यकता होती है ताकि SQL सर्वर उनकी पहचान को प्रमाणित कर सके और उचित पहुँच प्रदान कर सके।
SQL सर्वर सर्वर प्रमाणीकरण के दो तरीके प्रदान करता है:
- विंडोज प्रमाणीकरण
- SQL सर्वर और Windows प्रमाणीकरण मोड (मिश्रित-मोड)
आप SQL सर्वर की स्थापना के दौरान इन प्रमाणीकरण विधियों को परिभाषित कर सकते हैं, या बाद में पुनरारंभ करके उन्हें बदल सकते हैं। डेटाबेस व्यवस्थापकों के लिए इन प्रमाणीकरण विधियों के बीच अंतर को समझना और उन्हें अपने संगठन की विशिष्ट आवश्यकताओं के अनुसार लागू करना महत्वपूर्ण है।
आइए SQL सर्वर और Windows प्रमाणीकरण दोनों के फायदे और नुकसान को समझने के लिए और अधिक जानकारी प्राप्त करें।
SQL सर्वर प्रमाणीकरण का एक सिंहावलोकन
डेटाबेस व्यवस्थापक SQL लॉगिन बनाते हैं और उपयोगकर्ताओं को SQL सर्वर पर स्वयं को प्रमाणित करने के लिए उपयुक्त अनुमतियाँ प्रदान करते हैं। SQL सर्वर से कनेक्ट करते समय उपयोगकर्ताओं को लॉगिन और पासवर्ड निर्दिष्ट करने की आवश्यकता है जैसा कि नीचे दिखाया गया है।
उपयोगकर्ता की साख को मास्टर डेटाबेस में संग्रहीत जानकारी के माध्यम से मान्य किया जाता है। आप SQL सर्वर लॉगिन के लिए निम्न नीतियों को लागू कर सकते हैं।
- पासवर्ड नीति लागू करें :व्यवस्थापक SQL सर्वर लॉगिन के लिए Windows पासवर्ड नीति को लागू करने के लिए इस विकल्प की जाँच कर सकते हैं। इसमें पासवर्ड की लंबाई और जटिलता निर्दिष्ट करना शामिल है।
- पासवर्ड की समाप्ति लागू करें :आप पासवर्ड की अधिकतम आयु लागू कर सकते हैं। पासवर्ड की समय-सीमा समाप्त हो जाएगी और इसे आयु मानदंड के अनुसार परिभाषित करने की आवश्यकता होगी।
- उपयोगकर्ता को अगले लॉगिन पर पासवर्ड बदलना होगा :व्यवस्थापक SQL लॉगिन निर्माण के दौरान एक पासवर्ड असाइन करता है। एक बार जब उपयोगकर्ता अपने क्रेडेंशियल के साथ लॉग इन करता है, तो उन्हें एक नया पासवर्ड निर्दिष्ट करने की आवश्यकता होती है, और व्यवस्थापक इस नए पासवर्ड से अवगत नहीं होंगे।
नोट:ये सभी कॉन्फ़िगरेशन व्यक्तिगत SQL लॉगिन स्तर पर हैं। इसलिए, यदि आपको एकाधिक SQL लॉगिन बनाने की आवश्यकता है, तो आपको प्रत्येक खाते को आवश्यक नीति के साथ कॉन्फ़िगर करना होगा।
हम केवल SQL प्रमाणीकरण सक्षम नहीं कर सकते। इसे सक्षम करने के लिए, मिश्रित प्रमाणीकरण विकल्प का उपयोग करें जिसमें Windows और SQL प्रमाणीकरण दोनों शामिल हैं।
SQL सर्वर प्रमाणीकरण के नुकसान
अकेले SQL सर्वर प्रमाणीकरण का उपयोग करने की कुछ सीमाएँ और नुकसान हैं।
- उपयोगकर्ताओं को SQL लॉगिन क्रेडेंशियल याद रखने और उन्हें SQL सर्वर से कनेक्ट होने पर हर बार कनेक्शन स्ट्रिंग में प्रदान करने की आवश्यकता होती है। यदि आपके पास एकाधिक SQL सर्वर हैं, तो उपयोगकर्ता के लिए प्रत्येक उदाहरण के लिए पासवर्ड का ट्रैक रखना मुश्किल हो सकता है।
- SQL सर्वर पासवर्ड को मास्टर डेटाबेस में एन्क्रिप्टेड (हैश) रूप में संग्रहीत करता है। हैकर्स डेटाबेस तक पहुंच कर जानकारी चुरा सकते हैं। चूंकि इन एन्क्रिप्टेड क्रेडेंशियल्स को नेटवर्क पर पारित करने की आवश्यकता है, इससे उपयोगकर्ता क्रेडेंशियल चोरी होने की संभावना बढ़ सकती है।
- आप SQL सर्वर प्रमाणीकरण लॉगिन के साथ अतिरिक्त (अनुकूलित) खाता नीतियां लागू नहीं कर सकते।
- यह डेटाबेस प्रशासकों के लिए लॉगिन प्रबंधन के कार्य को बढ़ाता है। डेटाबेस व्यवस्थापकों के पास सभी मामलों में लॉगिन प्रबंधित करने के लिए एक केंद्रीय प्रबंधन कंसोल नहीं होता है।
मान लीजिए कि आपके पास 500+ SQL इंस्टेंस हैं और उपयोगकर्ता को इन सभी इंस्टेंस तक पहुंच की आवश्यकता है। इस मामले में, डेटाबेस व्यवस्थापक के लिए प्रत्येक उदाहरण से जुड़ना और उपयोगकर्ता लॉगिन बनाना एक कठिन कार्य होगा। इसी तरह, यदि कोई व्यक्ति संगठन छोड़ देता है, तो डेटाबेस व्यवस्थापक को उस व्यक्ति के SQL लॉगिन का पता लगाने और उन्हें इन सभी उदाहरणों से निकालने की आवश्यकता होती है। यह बहुत समय लेने वाली प्रक्रिया हो सकती है।
- डेटाबेस को अलग-अलग इंस्टेंस में ले जाने पर आपको अनाथ उपयोगकर्ता समस्याएं हो सकती हैं, और यह नए इंस्टेंस पर मास्टर और उपयोगकर्ता डेटाबेस में एक एसआईडी बेमेल के कारण हो सकता है।
- आपको प्रत्येक SQL लॉगिन के लिए सुरक्षा नीतियों को प्रबंधित करने की आवश्यकता है। आप अपने संगठन के सभी खातों के लिए एक सार्वभौमिक नीति निर्धारित नहीं कर सकते। एक बड़े डेटाबेस फ़ुटप्रिंट के लिए, प्रत्येक व्यक्तिगत लॉगिन के लिए नीति को परिभाषित करना एक कठिन कार्य है।
SQL सर्वर प्रमाणीकरण के लिए सर्वोत्तम उपयोग के मामले
- यदि पुराने एप्लिकेशन और तृतीय-पक्ष सॉफ़्टवेयर Windows (AD) प्रमाणीकरण का समर्थन नहीं करते हैं, तो यह डेटाबेस को जोड़ने में मदद कर सकता है।
- आपको SQL सर्वर से कनेक्ट करने के लिए अविश्वसनीय डोमेन के उपयोगकर्ताओं की आवश्यकता हो सकती है। इस मामले में, एप्लिकेशन कनेक्शन स्ट्रिंग में SQL लॉगिन निर्दिष्ट कर सकता है और डेटाबेस से कनेक्ट हो सकता है।
- ऐसे स्टैंडअलोन SQL इंस्टेंस को जोड़ने के लिए जो सक्रिय निर्देशिका (AD) समूहों का हिस्सा नहीं हैं।
- यह SQL सर्वर को वेब अनुप्रयोगों का समर्थन करने में मदद कर सकता है जहां उपयोगकर्ता अपनी पहचान बनाते हैं।
- व्यवस्थापक कुछ मामलों में सक्रिय निर्देशिका प्रमाणीकरण का उपयोग करके SQL सर्वर से कनेक्ट करने के लिए एक सामान्य आईडी साझा करते हैं। यह कनेक्शन पूलिंग एक अच्छा अभ्यास नहीं है। इस मामले में, आप प्रत्येक उपयोगकर्ता के लिए अलग लॉगिन बना सकते हैं और उनके क्रेडेंशियल्स का उपयोग करके डेटाबेस से जुड़ सकते हैं।
- डिफ़ॉल्ट रूप से, यदि आप क्लाउड में SQL डेटाबेस लागू करते हैं, अर्थात Azure SQL डेटाबेस या AWS RDS, तो आपको SQL सर्वर प्रमाणीकरण के लिए लॉगिन क्रेडेंशियल प्रदान किए जाते हैं। बाद में, यदि आवश्यक हो, तो आप AD- आधारित प्रमाणीकरण को कॉन्फ़िगर कर सकते हैं।
- आप इसका उपयोग Linux और macOS जैसे क्रॉस-ऑपरेटिंग सिस्टम से कनेक्ट करने के लिए कर सकते हैं।
Windows प्रमाणीकरण का एक सिंहावलोकन
विंडोज प्रमाणीकरण में, उपयोगकर्ता को पहले सक्रिय निर्देशिका के भीतर खुद को प्रमाणित करना चाहिए। SQL सर्वर OS में Windows प्रिंसिपल टोकन के माध्यम से उपयोगकर्ताओं को प्रमाणित करता है। इसके साथ, SQL सर्वर पहचान सत्यापन के लिए पासवर्ड नहीं मांगता है। इसलिए, विंडोज प्रमाणीकरण के लिए उपयोगकर्ताओं की पहचान की पुष्टि करता है। SQL सर्वर Windows प्रमाणीकरण में क्रेडेंशियल संग्रहीत नहीं करता है। Windows प्रमाणीकरण का उपयोग करने वाले कनेक्शन को विश्वसनीय या एकीकृत कनेक्शन कहा जाता है।
नोट:जब आप SQL सर्वर स्थापित करते हैं तो Windows प्रमाणीकरण डिफ़ॉल्ट प्रमाणीकरण विधि है।
Windows प्रमाणीकरण के लाभ
- Windows प्रमाणीकरण SQL सर्वर से कनेक्ट करने का एक सुरक्षित तरीका है, और यह Kerberos प्रमाणीकरण प्रोटोकॉल का उपयोग करके प्रमाणीकरण उद्देश्यों के लिए टोकन और SPNs का उपयोग करता है। इसलिए, यह पूरे नेटवर्क में पासवर्ड नहीं भेजता है, और यह पूरे नेटवर्क में पासवर्ड चुराने से बचाता है।
- SQL सर्वर उपयोगकर्ता के क्रेडेंशियल्स को संग्रहीत नहीं करता है।
- यह Kerberos सुरक्षा प्रोटोकॉल का उपयोग करता है, और आप जटिल पासवर्ड, खाता लॉकआउट और पासवर्ड समाप्ति जैसी पासवर्ड नीतियां लागू कर सकते हैं। यह पासवर्ड नीति संगठन स्तर पर सभी सर्वरों पर लागू की जा सकती है। इसलिए, आप व्यक्तिगत लॉगिन स्तर जैसे SQL सर्वर प्रमाणीकरण के बजाय संगठन स्तर पर उपयोगकर्ता सुरक्षा नीतियों को नियंत्रित कर सकते हैं।
- विंडोज प्रमाणीकरण कर्तव्यों को अलग करने में सक्षम बनाता है। सक्रिय निर्देशिका (AD) टीम AD उपयोगकर्ताओं का प्रबंधन करती है। जबकि, DBA, SQL इंस्टेंस में AD उपयोगकर्ताओं को जोड़ता है और उपयुक्त अनुमतियाँ प्रदान करता है।
- सक्रिय निर्देशिका विंडोज समूह बनाने में मदद करती है। AD टीम ऐसे कई लोगों को जोड़ सकती है जिन्हें AD समूह में समान पहुँच की आवश्यकता होती है। बाद में, आप समूह को SQL आवृत्ति में जोड़ सकते हैं और समूह स्तर पर अनुमतियाँ प्रदान कर सकते हैं। इसलिए, यदि कोई नया व्यक्ति शामिल होता है, एक बार जब वह एडी समूह का हिस्सा होता है, तो उस सर्वर पर डेटाबेस एक्सेस स्वचालित रूप से प्रदान किया जाता है जहां यह एडी समूह मौजूद होता है। इसी तरह, एक बार जब कोई उपयोगकर्ता संगठन से चला जाता है और इन एडी समूहों से उनकी आईडी हटा दी जाती है, तो वे अब डेटाबेस तक नहीं पहुंच सकते हैं।
Windows प्रमाणीकरण के नुकसान
- यदि आप केवल SQL सर्वर के लिए Windows प्रमाणीकरण का उपयोग करते हैं, तो सभी उपयोगकर्ताओं को सक्रिय निर्देशिका का हिस्सा होना चाहिए।
- DBA का AD लॉगिन और समूहों पर नियंत्रण नहीं है।
- AD समूह की सदस्यता DBA को ज्ञात नहीं है। यदि किसी उपयोगकर्ता को विज्ञापन समूहों से जोड़ा या हटाया जाता है तो आपको कोई सूचना नहीं मिलती है।
सारांश
यह ब्लॉग पोस्ट SQL सर्वर प्रमाणीकरण और Windows प्रमाणीकरण के प्रमुख घटकों की रूपरेखा तैयार करता है। मुझे उम्मीद है कि इससे आपको यह तय करने में इन प्रमाणीकरण विधियों के बीच अंतर को समझने में मदद मिलेगी कि आपके व्यवसाय और परिस्थितियों के लिए कौन सा सबसे अच्छा काम करता है।
SQL सर्वर प्रमाणीकरण का उपयोग उसी मशीन पर SQL सर्वर या दूरस्थ कनेक्शन पर किया जा सकता है। यदि आप एक सक्रिय निर्देशिका वातावरण में काम करते हैं, तो विंडोज प्रमाणीकरण का उपयोग करने की सिफारिश की जाती है। यदि आप गैर-सक्रिय निर्देशिका वातावरण में काम करते हैं, तो आप डेटाबेस कनेक्शन के लिए SQL सर्वर प्रमाणीकरण का उपयोग कर सकते हैं।
Windows प्रमाणीकरण SQL सर्वर में लॉगिन प्रबंधित करने के लिए अधिक सुरक्षा और लचीलापन प्रदान करता है। इसलिए, जब भी संभव हो आपको इसका इस्तेमाल करना चाहिए।