MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

मारियाडीबी के लिए आराम से डेटा के लिए एन्क्रिप्शन पर विचार

GDPR, PCI DSS या HIPPA के समय में डेटा सुरक्षा महत्वपूर्ण है। नियमों का पालन करने के लिए, डेटा को कैसे संग्रहीत और संरक्षित किया जाना चाहिए, इस बारे में अत्यधिक सावधानी बरतनी होगी। डेटा, आमतौर पर, आराम या पारगमन में हो सकता है। ट्रांज़िट में डेटा डेटाबेस से या में स्थानांतरित किया गया डेटा है। क्लाइंट या एप्लिकेशन को भेजे गए क्वेरी परिणाम या क्लस्टर के नोड्स के बीच दोहराए गए डेटा ऐसे मामलों के उदाहरण हैं जब डेटा ट्रांज़िट में होता है। हम एसएसएल या टीएलएस - डेटाबेस नोड्स या डेटाबेस और क्लाइंट के बीच एन्क्रिप्टेड कनेक्शन का उपयोग करके उस स्थिति में डेटा सुरक्षित करते हैं।

स्पेक्ट्रम के दूसरी तरफ, हमारे पास आराम से डेटा है - हम कहेंगे कि अधिकांश डेटा दिए गए क्षण में, आराम पर है। हम यहां टेबलस्पेस में डिस्क पर संग्रहीत डेटा, विभिन्न डेटा संरचनाओं (gcache बफर, फिर से लॉग) और लॉग (बाइनरी और रिले लॉग) के बारे में बात कर रहे हैं। आइए मारियाडीबी में इस विषय के बारे में विचारों पर एक नज़र डालें।

MariaDB में क्या एन्क्रिप्ट करना है?

आदर्श रूप से, आपको सब कुछ एन्क्रिप्ट करना होगा। डेटाबेस डेटा को अलग-अलग जगहों और अलग-अलग तरीकों से स्टोर करते हैं, जैसा कि ऊपर बताया गया है। डेटा का सबसे बड़ा सेट टेबलस्पेस में संग्रहीत किया जाता है - यह "अंतिम" स्थान है जहां डेटा संग्रहीत किया जाता है। जाहिर है, टेबलस्पेस को एन्क्रिप्ट करना संभव है - अन्यथा, पूरी सुविधा व्यर्थ होगी। मारियाडीबी डेटा को एक साझा टेबलस्पेस में स्टोर कर सकता है, उनमें से कई या प्रत्येक टेबल को एक अलग टेबलस्पेस में संग्रहीत किया जा सकता है - वे सभी परिदृश्य समर्थित हैं। एन्क्रिप्ट करने के लिए चुनते समय उपयोगकर्ताओं के पास कुछ स्तर का लचीलापन होता है। आप कुछ अलग-अलग तालिकाओं को छोड़कर सब कुछ, अलग-अलग टेबल या सब कुछ एन्क्रिप्ट कर सकते हैं।

MariaDB InnoDB फिर से लॉग करें

डेटा को स्टोर करने वाली एक अन्य संरचना InnoDB रीडो लॉग है। InnoDB रीडो लॉग एक ऐसी जगह है जहां डेटा को किसी दी गई पंक्ति को अपग्रेड करने के बाद लिखा जाता है। फिर से लॉग से डेटा अंततः टेबलस्पेस में स्थानांतरित कर दिया जाएगा लेकिन कुछ समय के लिए इनो डीबी रीडो लॉग में हाल ही में हुए सभी संशोधन शामिल हैं। जैसा कि आप कल्पना कर सकते हैं, यह डेटा भी महत्वपूर्ण है और इसे संरक्षित किया जाना चाहिए - मारियाडीबी आपको इनो डीबी रीडो लॉग को एन्क्रिप्ट करने की अनुमति देता है।

MariaDB बाइनरी लॉग

बाइनरी लॉग (साथ ही रिले लॉग) डेटा को संशोधित करने वाली निष्पादित क्वेरी के बारे में जानकारी संग्रहीत करते हैं। चूंकि शामिल जानकारी हमें उस पंक्ति की वर्तमान स्थिति को फिर से बनाने की अनुमति देती है जिसमें संशोधन हुआ है, यह डेटा का दूसरा रूप है जिसे संरक्षित और एन्क्रिप्ट किया जाना चाहिए। मारियाडीबी में बाइनरी और रिले लॉग दोनों को एन्क्रिप्ट किया जा सकता है।

गैलेरा कैशे

गैलेरा कैशे (gcache) गैलेरा क्लस्टर में एक ऑन-डिस्क बफर है जो निष्पादित संशोधनों के बारे में जानकारी संग्रहीत करता है। इसका उपयोग नोड विफलता या अस्थायी नेटवर्क समस्याओं के मामले में किया जाता है ताकि क्लस्टर में शामिल होने वाले नोड्स को केवल उस डेटा का उपयोग करने की अनुमति मिल सके जो वे गायब हैं, पूरे डेटासेट को स्थानांतरित करने से बचते हैं। बाइनरी लॉग या फिर से लॉग के समान, gcache में संशोधनों की सूची होती है और, जैसे, इसका उपयोग डेटा के टुकड़ों को पुनर्प्राप्त करने और एक साथ रखने के लिए किया जा सकता है। मारियाडीबी गैलेरा क्लस्टर के सामुदायिक संस्करण में gcache को एन्क्रिप्ट नहीं किया जा सकता है। ऐसा विकल्प मारियाडीबी गैलेरा क्लस्टर के एंटरप्राइज़ संस्करण में उपलब्ध हो जाता है।

MariaDB में क्या एन्क्रिप्ट नहीं किया जा सकता है?

अभी भी कुछ स्थान हैं जहां डेटा के टुकड़े दिखाई दे सकते हैं जिन्हें एन्क्रिप्ट नहीं किया जा सकता है, कम से कम अभी तक, मारियाडीबी में। सबसे पहले, त्रुटि लॉग में प्रश्नों के नमूने हो सकते हैं जो संभावित रूप से कुछ डेटा को उजागर कर सकते हैं। त्रुटि लॉग को एन्क्रिप्ट करना असंभव है, लेकिन त्रुटि लॉग को syslog पर पुनर्निर्देशित करना और मारियाडीबी के बाहर कुछ सुरक्षा तंत्र को लागू करना संभव है।

ऑडिट प्लगिन से लॉग्स

ऑडिट प्लगिन लॉग भी उत्पन्न करता है - इस लॉग में संवेदनशील जानकारी हो सकती है, जिसमें सटीक क्वेरीज़ भी शामिल हैं जिन्हें डेटाबेस पर निष्पादित किया गया है। इस लॉग को एन्क्रिप्ट करना संभव नहीं है, लेकिन इसे syslog पर रीडायरेक्ट किया जा सकता है और वहां एन्क्रिप्ट किया जा सकता है।

क्वेरी लॉग्स

सामान्य और धीमी क्वेरी लॉग - उन लॉग में क्वेरी (या उनमें से कम से कम नमूने) होंगे जिन्हें मारियाडीबी द्वारा निष्पादित किया गया था। अभी तक, उन लॉग को एन्क्रिप्ट करना संभव नहीं है।

InnoDB बफर पूल

स्मृति - मारियाडीबी केवल उन पृष्ठों के लिए एन्क्रिप्शन करता है जो डिस्क पर संग्रहीत हैं। InnoDB बफर पूल में संग्रहीत सभी डेटा अनएन्क्रिप्टेड होंगे। InnoDB बफर पूल का उद्देश्य हाल ही में संशोधित या SELECT क्वेरी द्वारा एक्सेस की गई पंक्तियों को रखना है - उन पंक्तियों में स्पष्ट रूप से डेटा नमूने होंगे। अभी तक, MariaDB में InnoDB बफर पूल को एन्क्रिप्ट करने का कोई विकल्प नहीं है। कृपया ध्यान रखें कि लाइव मेमोरी को पढ़ने के लिए सिस्टम तक पहुंच की आवश्यकता होगी। यह कोई मामूली काम नहीं है, भले ही इसे पूरा करना असंभव भी न हो।

कृपया ध्यान रखें कि हमने MariaDB में शामिल एन्क्रिप्शन विकल्पों को कवर किया है। एन्क्रिप्शन की एक और परत का उपयोग करने की संभावना हमेशा होती है। उदाहरण के लिए, संपूर्ण संग्रहण को एन्क्रिप्ट करने से ऐसे लॉग रेंडर हो जाएंगे जो डिस्क तक भौतिक पहुंच रखने वाले किसी भी व्यक्ति के लिए पढ़ने योग्य नहीं होंगे। दूसरी ओर, यह किसी ऐसे व्यक्ति से डेटा की सुरक्षा नहीं करेगा जो सिस्टम में लॉग इन करने में सक्षम है।

बाहरी उपकरणों के साथ संगतता

एक और बात पर विचार करना अनुकूलता है। यदि आप अपने मारियाडीबी को एन्क्रिप्ट करने का निर्णय लेते हैं, तो आपको यह ध्यान रखना होगा कि यह आपके काम करने के तरीके को प्रभावित कर सकता है। डेटा को प्रोसेस करने और बैकअप बनाने या बाइनरी लॉग से निपटने के लिए XtraBackup या mysqlbinlog जैसे बाहरी टूल का उपयोग करना संभव नहीं है। आपको मारियाडीबी (जैसे मारियाबैकअप) द्वारा बनाए गए टूल से चिपके रहना होगा, जो एन्क्रिप्शन तंत्र को ध्यान में रखकर लिखे गए हैं। वे मारियाडीबी में बाकी एन्क्रिप्शन लागू होने पर डेटा को संभाल सकते हैं।

एन्क्रिप्शन प्रक्रिया की योजना बनाना

यह खंड प्रक्रिया पर विस्तार से चर्चा नहीं करेगा, लेकिन यह देखता है कि एन्क्रिप्शन की योजना बनाते समय आपको क्या विचार करना चाहिए, जैसे संसाधन और समय। CPU उपयोग में वृद्धि होगी और साथ ही प्रक्रिया की अवधि के लिए I/O गतिविधि भी बढ़ेगी। उपयोगकर्ता के दृष्टिकोण से, यह सभी कॉन्फ़िगरेशन सेटिंग्स के लिए नीचे आता है और फिर मौजूदा तालिकाओं के पुनर्निर्माण और एन्क्रिप्ट करने के लिए ALTER कमांड निष्पादित करता है। बड़े डेटाबेस के लिए, यह अकेले एक महत्वपूर्ण चुनौती हो सकती है जिसके लिए योजना बनाने की आवश्यकता होगी। स्कीमा परिवर्तन एक गंभीर बोझ हो सकते हैं, और उत्पादन प्रणालियों पर उनके प्रभाव को कम करने और प्रक्रिया पर बेहतर नियंत्रण हासिल करने के लिए पीटी-ऑनलाइन-स्कीमा-परिवर्तन जैसे उपकरणों का उपयोग करने की अनुशंसा की जाती है।

अंतिम विचार

जैसा कि हमने उल्लेख किया है, डेटा सभी संगठनों के लिए महत्वपूर्ण है, और यह सुनिश्चित करना महत्वपूर्ण है कि डेटा सुरक्षित है और सुरक्षित है। आराम से डेटा का एन्क्रिप्शन पूरी तस्वीर में महत्वपूर्ण तत्वों में से एक है। हम मारियाडीबी में बाकी एन्क्रिप्शन पर डेटा के साथ आपके अनुभव के बारे में आपसे सुनना पसंद करेंगे। यदि आप अपने विचार साझा करना चाहते हैं, तो नीचे एक टिप्पणी छोड़ने के लिए आपका स्वागत है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे CURDATE () मारियाडीबी में काम करता है

  2. मारियाडीबी ROW_COUNT () समझाया गया

  3. मूडल 3.9 . के साथ डेटाबेस ट्रैफ़िक के रीड राइट स्प्लिटिंग का उपयोग करके प्रदर्शन को बढ़ावा देना

  4. Oracle डेटाबेस से MariaDB में स्थानांतरण - एक गहरा गोता

  5. मारियाडीबी में एलपीएडी () कैसे काम करता है