MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB 3.x . पर डिफ़ॉल्ट के रूप में MongoDB-CR प्रमाणीकरण को कॉन्फ़िगर करना

MongoDB 3.x में बनाए गए सभी उपयोगकर्ता SCRAM-SHA1 के साथ बनाए गए हैं जो MongoDB-CR की अपेक्षा करने वाले टूल के साथ पश्चगामी संगतता को तोड़ता है। ऐसे टूल और ड्राइवरों की लॉन्ड्री सूची है जिन्हें अभी तक SCRAM-SHA1 का समर्थन करने के लिए अपडेट नहीं किया गया है, जैसे कि रोबोमोंगो और मोंगोवीयू।

कुछ मामलों में, भले ही ड्राइवर/ओआरएम का नया संस्करण उपलब्ध हो, हो सकता है कि आप कुछ संगतता समस्याओं के कारण अपने ड्राइवर को अपग्रेड करने के लिए तैयार न हों।

MongoDB दो प्रमाणीकरण विधियों का समर्थन करता है:

  1. MongoDB- CR (चुनौती-प्रतिक्रिया)
    उपयोगकर्ताओं को पासवर्ड से प्रमाणित करने की प्रणाली। 2.6.x तक डिफ़ॉल्ट प्रमाणीकरण तंत्र। अधिक विवरण के लिए दस्तावेज़ीकरण देखें।
  2. स्क्रैम-SHA1
    यह पासवर्ड के साथ उपयोगकर्ताओं को प्रमाणित करने के लिए चुनौती प्रतिक्रिया तंत्र के लिए एक IETF मानक है। यह नई और अधिक सुरक्षित प्रणाली है। यह MongoDB-CR के साथ पिछड़ा संगत नहीं है। अधिक विवरण के लिए दस्तावेज़ीकरण देखें।

MongoDB CR विरासत प्रमाणीकरण प्रणाली है। MongoDB 3.X ने डिफ़ॉल्ट उपयोगकर्ता प्रमाणीकरण प्रणाली को SCRAM-SHA1 में बदल दिया। तो, सिस्टम में बनाया गया कोई भी नया उपयोगकर्ता SCRAM-SHA1 उपयोगकर्ता है। चूंकि SCRAM-SHA1 पीछे की ओर संगत नहीं है, इसलिए यह MONGODB-CR mechasim का उपयोग करने वाले सभी उपयोगकर्ताओं के साथ प्रमाणीकरण को तोड़ देता है।

हालाँकि, आप नए WiredTiger स्टोरेज इंजन का उपयोग करना चाह सकते हैं जो MongoDB 3.x में उपलब्ध है। यह मानते हुए कि आप एक प्रतिकृति सेट चला रहे हैं, MongoDB-CR को डिफ़ॉल्ट प्रमाणीकरण तंत्र के रूप में MongoDB 3.x में कॉन्फ़िगर करने के चरण यहां दिए गए हैं:

  1. एक 3.x MongoDB क्लस्टर बनाएं।
  2. प्राथमिक के अलावा अन्य प्रतिकृति सेट के सभी नोड्स को रोकें।
  3. प्राथमिक पर प्रमाणीकरण अक्षम करें और नोड को पुनरारंभ करें। मैंने MongoDB कॉन्फ़ फ़ाइल में निम्न प्रविष्टियों पर टिप्पणी करके और सर्वर को पुनरारंभ करके ऐसा किया:0
  4. प्राथमिक से कनेक्ट करें और स्कीमा संस्करण बदलें:
    व्यवस्थापक का उपयोग करें;var स्कीमा =db.system.version.findOne({"_id" :"authSchema"});schema.currentVersion =3;db.system .version.save(स्कीमा)
  5. उपरोक्त चरण 3 में mongodb.conf फ़ाइल में किए गए परिवर्तनों को पूर्ववत करें और MongoDB को पुनरारंभ करें।
  6. प्रतिकृति सेट के अन्य नोड्स पर MongoDB को पुनरारंभ करें और सुनिश्चित करें कि प्रतिकृति सेट स्वस्थ है। एक बार ऐसा करने के बाद, सिस्टम पर बनाए गए सभी उपयोगकर्ता MongoDB-CR उपयोगकर्ता होंगे। आप निम्न आदेश निष्पादित करके इसे सत्यापित कर सकते हैं:
    db.system.users.find().pretty();

ध्यान दें, हालांकि, यह केवल एक अस्थायी समाधान होना चाहिए। SCRAM-SHA1 मॉडल का उपयोग करने के लिए अपने MongoDB सर्वर को अपग्रेड करना अधिक सुरक्षित दीर्घकालिक सुधार है। एक बार जब आप अपग्रेड करने के लिए तैयार हो जाएं, तो अपने उपयोगकर्ताओं के स्कीमा संस्करण को SCRAM-SHA1 में अपग्रेड करने के लिए निम्न स्क्रिप्ट चलाएँ:

db.getSiblingDB("admin").runCommand({authSchemaUpgrad});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में "$ pullAll को एक सरणी तर्क की आवश्यकता है लेकिन एक डबल दिया गया था" को ठीक करें

  2. स्प्रिंग डेटा में एक वर्ग के लिए MongoDb संग्रह नाम को कैसे कॉन्फ़िगर करें

  3. नेवला अद्वितीय सूचकांक काम नहीं कर रहा!

  4. MongoDB के बारे में

  5. MongoDB स्कीमा डिज़ाइन - कई छोटे दस्तावेज़ या कम बड़े दस्तावेज़?