इस ब्लॉग में, मैंने CLE (सेल लेवल एन्क्रिप्शन) लागू होने पर डेटाबेस रिस्टोर करने और एन्क्रिप्टेड डेटा प्राप्त करने के लिए आवश्यक चरणों पर चर्चा की है।
डेटा सुरक्षा डेटाबेस मैनेजमेंट में महत्वपूर्ण पहलुओं में से एक है। जब हम संवेदनशील डेटा एन्क्रिप्ट कर रहे होते हैं, तो MS SQL Server में इसे प्राप्त करने के कई तरीके हैं जैसे CLE, TDE, और Always Encrypted। जब आप सर्टिफिकेट या कीज़ का उपयोग करके सेल के भीतर डेटा एन्क्रिप्ट कर रहे होते हैं, तो इसे CLE (सेल लेवल एन्क्रिप्शन) के रूप में जाना जाता है।
समस्या:
- ERROR: - जिन समस्याओं का आप सामना कर सकते हैं उनमें से एक यह है कि एप्लिकेशन या कुछ TSQL कोड जो डेटा डिक्रिप्ट कर रहा है, निम्नलिखित त्रुटि देना शुरू कर देता है।
- DecryptByKey फंक्शन डेटा डिक्रिप्ट करने में सक्षम नहीं है। यह आपको कोई त्रुटि नहीं देगा, हालांकि एन्क्रिप्शन कीज़ गायब होने के कारण फंक्शनैलिटी प्रभावित होगी।
समाधान
चूंकि हमने डेटाबेस मास्टर की नहीं खोली, इसलिए डेटा का डिक्रिप्शन संभव नहीं है, साथ ही DMK वर्तमान इंस्टेंस सर्विस मास्टर की द्वारा एन्क्रिप्टेड नहीं है, इसलिए आप ऐसी समस्या देखते हैं, इसे हल करने के लिए हमारे पास कई समाधान हैं, आइए उन्हें एक-एक करके देखें।
केस 1 - जब डेटाबेस मास्टर की एन्क्रिप्शन पासवर्ड ज्ञात हो
स्टेप 1: पासवर्ड का उपयोग करके डेटाबेस मास्टर की खोलें और डेटा डिक्रिप्ट करें।
स्टेप 2: जो सवाल दिमाग में आता है वह है हर सत्र में पासवर्ड के साथ की खोलने की संभावना या आप इसे हार्डकोड कर सकते हैं? उत्तर नहीं है, ऐसे मामलों में, आप डेटाबेस मास्टर की को वर्तमान इंस्टेंस सर्विस मास्टर की के साथ फिर से एन्क्रिप्ट करेंगे और स्नैपशॉट में दिखाए अनुसार निम्नलिखित कमांड चलाएंगे।
स्टेप 3: जांचें कि क्या आप पासवर्ड के साथ की खोले बिना डेटा डिक्रिप्ट कर सकते हैं और उत्तर हां है क्योंकि की अब वर्तमान सर्विस मास्टर की द्वारा भी एन्क्रिप्टेड है।
स्टेप 4: यदि आप डेटाबेस मास्टर की एन्क्रिप्शन पासवर्ड बदलना चाहते हैं तो आपको निम्नलिखित चरण पूरा करने की आवश्यकता है
केस 2: जब डेटाबेस मास्टर की एन्क्रिप्शन पासवर्ड अज्ञात हो
यदि आप पासवर्ड के बारे में नहीं जानते हैं और स्रोत सुलभ है। केस 1 से स्टेप 4 का उपयोग करके पासवर्ड बदलें और स्टेप 1 में प्रक्रिया का पालन करें। वैकल्पिक रूप से निम्नलिखित चरणों का उपयोग करें।
यह केवल तभी संभव है जब वह इंस्टेंस जहां डेटाबेस रिस्टोर हो रहा है, किसी अन्य की का उपयोग नहीं कर रहा है क्योंकि यहां शामिल चरण इंस्टेंस सर्विस मास्टर की को रिस्टोर कर रहे हैं।
उदाहरण: - इंस्टेंस सर्विस मास्टर की का बैकअप कैसे लें
– सर्विस मास्टर की का बैकअप लें BACKUP SERVICE MASTER KEY TO FILE = 'C:\Shared\service_master_key.key' ENCRYPTION BY PASSWORD = 'key_P@ssw0rdGqw0956565’
नोट: - की बैकअप फाइलें सुरक्षा के नजरिए से बहुत संवेदनशील होती हैं, इसलिए सिक्योरिटी टैब में SQL सर्विस अकाउंट जोड़ें ताकि यह सुनिश्चित हो सके कि SQL सर्वर की फाइल तक पहुंच है, अन्यथा रिस्टोरिंग प्रक्रिया के दौरान आपको निम्नलिखित त्रुटि मिल सकती है।
Msg 15317, Level 16, State 2, Line 53 The master key file does not exist or has invalid format
स्टेप 1: डेटाबेस रिस्टोर करने से पहले सर्विस मास्टर की रिस्टोर करें।
स्टेप 2: डेटाबेस रिस्टोर करें।
स्टेप 3: जांचें कि क्या आप पासवर्ड के साथ की खोले बिना डेटा डिक्रिप्ट कर सकते हैं और उत्तर हां है क्योंकि की उसी सर्विस मास्टर की का उपयोग कर रही है जैसा कि हम दोनों इंस्टेंस सर्विस की और इसके द्वारा एन्क्रिप्टेड डेटाबेस को रिस्टोर करते हैं।
निष्कर्ष
MS SQL Server में एन्क्रिप्शन के लिए उपयोग किया जाने वाला प्रत्येक ऑब्जेक्ट इंस्टेंस लेवल सर्विस मास्टर की द्वारा सुरक्षित होता है। एन्क्रिप्शन मैनेज करने के लिए यह समझना महत्वपूर्ण है कि एन्क्रिप्शन में शामिल ऑब्जेक्ट्स पासवर्ड, कीज़ या सर्टिफिकेट द्वारा आगे एन्क्रिप्टेड होते हैं।
हर बार जब हम सेल लेवल डेटा एन्क्रिप्शन के साथ डेटाबेस माइग्रेट कर रहे होते हैं, तो हमें या तो की को डिक्रिप्ट करके उन्हें डेस्टिनेशन इंस्टेंस सर्विस मास्टर की के साथ फिर से एन्क्रिप्ट करने की आवश्यकता होती है या सोर्स इंस्टेंस मास्टर की को रिस्टोर करना होता है।