इस ब्लॉग में, मैंने CLE (सेल लेवल एन्क्रिप्शन) लागू होने पर डेटाबेस को पुनर्स्थापित करने और एन्क्रिप्टेड डेटा पुनर्प्राप्त करने के लिए आवश्यक चरणों पर चर्चा की है।
डेटाबेस प्रबंधन में डेटा सुरक्षा एक महत्वपूर्ण पहलू है। जब हम संवेदनशील डेटा को एन्क्रिप्ट कर रहे होते हैं, तो MS SQL सर्वर जैसे CLE, TDE और ऑलवेज एनक्रिप्टेड में इसे प्राप्त करने के कई तरीके हैं। जब आप प्रमाणपत्र या कुंजियों का उपयोग करके सेल के भीतर डेटा एन्क्रिप्ट कर रहे होते हैं, तो इसे CLE (सेल लेवल एन्क्रिप्शन) के रूप में जाना जाता है।
समस्या:
- त्रुटि:- आप जिन मुद्दों को देख सकते हैं उनमें से एक एप्लिकेशन या कुछ टीएसक्यूएल कोड है जो डेटा को डिक्रिप्ट कर रहा है, निम्नलिखित त्रुटि देना शुरू कर देता है।
- DecryptByKey फ़ंक्शन डेटा को डिक्रिप्ट करने में सक्षम नहीं है। यह आपको कोई त्रुटि नहीं देगा, हालांकि एन्क्रिप्शन कुंजी गुम होने के कारण कार्यक्षमता प्रभावित होगी।
समाधान
चूंकि हमने डेटाबेस मास्टर कुंजी नहीं खोली है इसलिए डेटा का डिक्रिप्शन संभव नहीं है, साथ ही डीएमके वर्तमान इंस्टेंस सर्विस मास्टर कुंजी द्वारा एन्क्रिप्ट नहीं किया गया है इसलिए आप इस तरह की समस्या देखते हैं, हमारे पास इसे हल करने के लिए कई समाधान हैं, तो चलिए उनके बारे में एक-एक करके बात करते हैं ।
केस 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 सर्वर में प्रत्येक ऑब्जेक्ट जो एन्क्रिप्शन के लिए उपयोग किया जाता है, इंस्टेंस लेवल सर्विस मास्टर कुंजियों द्वारा सुरक्षित होता है। एन्क्रिप्शन के प्रबंधन के लिए यह समझना महत्वपूर्ण है कि एन्क्रिप्शन में शामिल वस्तुओं को पासवर्ड, कुंजी या प्रमाणपत्र द्वारा आगे एन्क्रिप्ट किया जाता है।
हर बार जब हम सेल स्तर डेटा एन्क्रिप्शन के साथ डेटाबेस माइग्रेट कर रहे हैं, तो हमें या तो कुंजी को डिक्रिप्ट करना होगा और उन्हें गंतव्य इंस्टेंस सर्विस मास्टर कुंजी के साथ फिर से एन्क्रिप्ट करना होगा या स्रोत इंस्टेंस मास्टर कुंजी को पुनर्स्थापित करना होगा।
कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें। आप हमारे साथ बातचीत भी शुरू कर सकते हैं।