संपादित 2 सप्ताह पहले द्वारा ExtremeHow संपादकीय टीम
माइक्रोसॉफ्ट एसक्यूएल सर्वरसुरक्षाकॉन्फ़िगरेशनडेटाबेसविंडोलिनक्सआईटीउपयोगकर्ता प्रबंधनप्रमाणीकरणसर्वर
अनुवाद अपडेट किया गया 2 सप्ताह पहले
माइक्रोसॉफ्ट SQL सर्वर एक लोकप्रिय डेटाबेस प्रबंधन प्रणाली है जो डेटा के भंडारण, पुनर्प्राप्ति और प्रसंस्करण को सक्षम बनाती है। हालांकि, किसी भी प्रणाली की तरह जो संवेदनशील डेटा का प्रबंधन करती है, सुरक्षा अत्यंत महत्वपूर्ण है। सुरक्षा को कॉन्फ़िगर करने का उद्देश्य डेटा को अनधिकृत पहुंच से बचाना और यह सुनिश्चित करना है कि केवल सही लोगों को डेटा प्रबंधन का अधिकार हो। यह लेख माइक्रोसॉफ्ट SQL सर्वर में सुरक्षा को कॉन्फ़िगर करने पर एक व्यापक मार्गदर्शिका प्रदान करता है।
SQL सर्वर में सुरक्षा मॉडल लॉगिन खातों, उपयोगकर्ताओं और भूमिकाओं के संयोजन पर आधारित है। ये तत्व मिलकर यह सुनिश्चित करने के लिए काम करते हैं कि केवल अधिकृत उपयोगकर्ता ही डेटाबेस तक पहुंच प्राप्त कर सकें और कुछ कार्य कर सकें। आइए इन तत्वों में से प्रत्येक पर करीब से नज़र डालें।
लॉगिन SQL सर्वर उदाहरण से कनेक्ट करने के लिए उपयोग किया जाने वाला एक खाता है। SQL सर्वर कई प्रकार के लॉगिन का समर्थन करता है, जिसमें SQL सर्वर प्रमाणीकरण और विंडोज़ प्रमाणीकरण शामिल है। विंडोज़ प्रमाणीकरण आमतौर पर पसंद किया जाता है क्योंकि यह विंडोज़ सुरक्षा मॉडल के साथ एकीकृत होता है और इसे अधिक सुरक्षित माना जाता है।
नया लॉगिन बनाने के लिए, इन चरणों का पालन करें:
use master; CREATE LOGIN [TestLogin] WITH PASSWORD='YourStrongPassword123';
इस उदाहरण में, एक नया SQL सर्वर प्रमाणीकृत लॉगिन TestLogin नाम से बनाया गया है। अपने लॉगिन के लिए हमेशा एक मजबूत पासवर्ड का उपयोग करें।
एक उदाहरण के लिए एक लॉगिन बनाए जाने के बाद, आप प्रत्येक विशिष्ट डेटाबेस में एक उपयोगकर्ता बना सकते हैं जिसे यह लॉगिन एक्सेस कर सकता है। डेटाबेस में एक उपयोगकर्ता लॉगिन के साथ जुड़ा होता है, और यह संघ उपयोगकर्ता को डेटाबेस तक पहुंचते समय प्रमाणीकृत होने की अनुमति देता है।
हमारे द्वारा पहले बनाए गए लॉगिन के लिए डेटाबेस उपयोगकर्ता बनाने के लिए, निम्नलिखित कमांड का उपयोग करें:
use your database; CREATE USER [TestUser] FOR LOGIN [TestLogin];
यह कमांड निर्दिष्ट डेटाबेस (YourDatabase) में लॉगिन TestLogin के साथ जुड़े एक उपयोगकर्ता को बनाता है।
भूमिकाएँ अनुमतियों का एक संग्रह हैं जिन्हें आप एक उपयोगकर्ता या उपयोगकर्ताओं के समूह को असाइन कर सकते हैं। वे अनुमतियों को एक भूमिका में समूहीकृत करके और फिर उपयोगकर्ताओं को उस भूमिका को असाइन करके अनुमतियों को प्रबंधित करने का एक सरल तरीका प्रदान करते हैं।
SQL सर्वर प्रदान करता है सर्वर की स्थिर भूमिकाएँ और डेटाबेस की स्थिर भूमिकाएँ। सर्वर की स्थिर भूमिकाएँ SQL सर्वर के पूरे उदाहरण पर लागू होती हैं, जबकि डेटाबेस की स्थिर भूमिकाएँ केवल एक विशेष डेटाबेस पर लागू होती हैं।
यहाँ बताया गया है कि कैसे आप एक उपयोगकर्ता को एक विशेष डेटाबेस भूमिका में जोड़ सकते हैं:
use your database; EXECUTE sp_addrolemember 'db_datareader', 'TestUser';
यह कमांड TestUser को db_datareader भूमिका में जोड़ता है, जिससे उपयोगकर्ता को निर्दिष्ट डेटाबेस के भीतर सभी डेटा पढ़ने की अनुमति मिलती है।
अनुमतियाँ SQL सर्वर संसाधनों जैसे टेबल, दृश्य, या संग्रहीत प्रक्रियाओं पर कुछ कार्य करने के अधिकार हैं। SQL सर्वर एक व्यापक सेट की अनुमतियाँ प्रदान करता है, और आप उनकी सुरक्षा आवश्यकताओं के आधार पर लॉगिन या उपयोगकर्ताओं को अनुमतियाँ दे सकते हैं या अस्वीकार कर सकते हैं।
मान लें कि आप किसी उपयोगकर्ता को एक विशिष्ट तालिका में डेटा डालने की अनुमति देना चाहते हैं। आप निम्नलिखित कमांड चला सकते हैं:
use your database; GRANT INSERT ON [YourTable] TO TestUser;
यह कमांड TestUser को YourDatabase में निर्दिष्ट तालिका (YourTable) में डेटा डालने की अनुमति देता है।
SQL सर्वर सेंसेटिव डेटा को संरक्षित करने के लिए एन्क्रिप्शन क्षमताएँ प्रदान करता है जो SQL सर्वर इंस्टेंस और अनुप्रयोगों के बीच संग्रहित, प्रसारित, या आदान-प्रदान किया जा रहा है। इसमें ट्रांसपेरेंट डेटा एन्क्रिप्शन (TDE) और ऑलवेज़ एन्क्रिप्टेड के लिए समर्थन शामिल है।
TDE डेटा को सुरक्षित रखने में मदद करता है क्योंकि यह डेटा को एन्क्रिप्ट करता है, जिसका अर्थ है कि डिस्क पर भौतिक फ़ाइलें भी एन्क्रिप्टेड होती हैं। हालाँकि, अनुप्रयोगों को डेटाबेस से कनेक्ट करने के लिए डेटा अभी भी वास्तविक रूप में प्रदर्शित होता है।
किसी डेटाबेस पर TDE को लागू करने के लिए, इन चरणों का पालन करें:
use master; Create master key encryption by password = 'YourStrongPassword123'; CREATE CERTIFICATE EncryptCert WITH SUBJECT = 'Database Encryption Certificate'; use your database; Create database encryption key with algorithm = AES_256 Encryption by server certificate EncryptCert; ALTER DATABASE YourDatabase SET ENCRYPTION ON;
यह कमांड श्रृंखला Certificat के माध्यम से YourDatabase के लिए डेटाबेस एन्क्रिप्शन सेट करती है।
ऑलवेज़ एनक्रिप्टेड SQL सर्वर डेटाबेस के भीतर संवेदनशील डेटा की रक्षा करने के लिए डिज़ाइन किया गया है। केवल एन्क्रिप्शन कुंजियों वाले क्लाइंट अनुप्रयोग ही सामान्य डेटा तक पहुंच सकते हैं। एन्क्रिप्शन क्लाइंट स्तर पर होता है, इसलिए SQL सर्वर कभी भी बिना एन्क्रिप्टेड मान नहीं देखता।
ऑलवेज़ एन्क्रिप्टेड को सेट करना ज्यादातर SQL सर्वर प्रबंधन स्टूडियो (SSMS) या पॉवरशेल स्क्रिप्ट का उपयोग करके तालिका कॉलम को एन्क्रिप्शन का उपयोग करने के लिए बदलने के लिए एन्क्रिप्शन कुंजियों को कॉन्फ़िगर करना शामिल करता है।
SQL सर्वर में ऑडिटिंग सुरक्षा का एक अभिन्न अंग है, क्योंकि यह सिस्टम पर होने वाली घटनाओं को ट्रैक करने और लॉग करने में मदद करता है। आप सर्वर-स्तरीय घटनाओं या डेटाबेस-स्तरीय घटनाओं का ऑडिट कर सकते हैं, और SQL सर्वर इन गतिविधियों को सुविधाजनक बनाने के लिए अंतर्निहित ऑडिट वस्तुओं का प्रदान करता है।
सर्वर-स्तरीय वस्तु के साथ एक ऑडिट और जुड़ाव बनाने का एक बुनियादी उदाहरण यहां दिया गया है:
Create a server audit ServerAudit in file(filepath = 'C:\AuditFiles\'); Change server audit ServerAudit with (status = on); Create a server audit specification ServerAuditSpec ServerAudit for server audits add(failed_login_group); Change server audit specification ServerAuditSpec with (status = on);
यह स्क्रिप्ट असफल लॉगिन प्रयासों को लॉग करती है और निर्दिष्ट फ़ाइल स्थान पर लॉग को आउटपुट करती है।
SQL सर्वर कई सुरक्षा नीतियों का समर्थन करता है जो सुरक्षा प्रथाओं को स्वचालित करने और प्रबंधित करने में मदद करती हैं। कुछ उल्लेखनीय सुरक्षा नीतियों में रो-लेवल सुरक्षा (RLS) और गतिशील डेटा मास्किंग (DDM) शामिल हैं।
RLS तालिका में पंक्तियों पर सटीक ग्रेन्यूलर एक्सेस कंट्रोल के कार्यान्वयन को सक्षम करता है। इससे यह सुनिश्चित होता है कि उपयोगकर्ताओं के पास केवल उन्हीं पंक्तियों की पहुंच हो, जिनके लिए उनके पास प्राधिकरण है।
आप भविष्यवाणी कार्यों और सुरक्षा नीतियों को परिभाषित करके RLS बना सकते हैं। भविष्यवाणी कार्य यह फिल्टर पंक्तियों के लिए लॉजिक को परिभाषित करता है।
CREATE FUNCTION dbo.fn_securitypredicate (@UserName AS sysname) Returns Table With SchemaBinding As select return 1 as result where @username = USER_NAME(); Create a security policy SecurityPolicy ADD FILTER PREDICATE dbo.fn_securitypredicate(username) on your table with (status = on);
यह उदाहरण उपयोगकर्ता नाम के आधार पर YourTable तक पहुँच को फ़िल्टर करता है।
DDM SQL सर्वर में एक अंतर्निहित सुविधा है जो अनधिकृत उपयोगकर्ताओं के लिए डेटा प्रस्तुत करते समय संवेदनशील डेटा को छिपाने की प्रक्रिया को बढ़ावा देती है। डेटा को पूर्ण रूप से संग्रहीत किया गया है, लेकिन पुनः प्राप्त किए जाने पर इसे छिपा या अज्ञात बना दिया जाता है।
यहां किसी तालिका पर DDM सेट अप करने का एक उदाहरण दिया गया है:
ALTER TABLE YourTable ALTER COLUMN SensitiveColumn ADD MASKED WITH (FUNCTION = 'partial(2,"*",0)');
यह आंशिक मास्क फ़ंक्शन का उपयोग करके SensitiveColumn को मास्क करता है, पहले दो अक्षरों को प्रदर्शित किया जाता है, और बाकी अक्षरों को मास्क किया जाता है।
माइक्रोसॉफ्ट SQL सर्वर में सुरक्षा को कॉन्फ़िगर करना लॉगिन, उपयोगकर्ताओं और भूमिकाओं को सेट करने से लेकर एन्क्रिप्शन रणनीतियों, ऑडिटिंग और सुरक्षा नीतियों को लागू करने तक कई चरणों से शामिल है। आपके पास उपलब्ध विभिन्न उपकरणों और रणनीतियों को समझना आपको अपने SQL सर्वर उदाहरण के लिए एक मजबूत सुरक्षा संरचना बनाने में सक्षम करेगा। नियमित समीक्षाएँ और आपके कॉन्फ़िगरेशन के अपडेट यह सुनिश्चित करते हैं कि आपका SQL सर्वर सुरक्षा उभरते खतरों के साथ तालमेल बनाए रखता है।
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं