सवाल MongoDB सुपर-व्यवस्थापक ठीक से प्रमाणित करता है लेकिन अभी भी अनधिकृत क्वेरी त्रुटियां पाता है?


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

क्या कोई मुझे बता सकता है कि यह क्यों है और मैं इसे कैसे ठीक कर सकता हूं? वर्तमान में मैं प्रमाणीकरण के बिना दौड़ रहा हूं जब तक कि मैं यह तय नहीं कर सकता।


4
2017-08-25 01:01


मूल




जवाब:


userAdminAnyDatabase भूमिका (और userAdmin भूमिका है कि यह एक विस्तार है) बस आपके उपयोगकर्ता को पढ़ने और लिखने की अनुमति देता है system.users डेटाबेस के उपयोगकर्ताओं को प्रशासित करने के लिए संग्रह। यह उपयोगकर्ता को डेटाबेस के वास्तविक संग्रह को पढ़ने या लिखने की अनुमति नहीं देता है। इसके लिए, आपको अनुदान देना होगा read या readWrite भूमिकाओं।

देख MongoDB में उपयोगकर्ता विशेषाधिकार भूमिकाएं तथा एक डेटाबेस में एक उपयोगकर्ता जोड़ें


4
2017-09-03 09:21





प्रमाणीकरण समस्या हल करने के लिए अगले चरणों को चलाने का प्रयास करें:

  1. प्रमाणीकरण सक्षम और चलाने के बिना mongod शुरू करें:
  2. डेटाबेस बनाएं
  3. भूमिका के साथ उपयोगकर्ता बनाओ
  4. एक दस्तावेज़ के साथ एक डमी संग्रह बनाएँ
  5. मोंगोड को रोको / मारो
  6. प्रमाणीकरण सक्षम के साथ mongod शुरू करें
  7. चरण 1 में बनाए गए डेटाबेस पर स्विच करें
  8. चरण 3 में बनाए गए उपयोगकर्ता के साथ डेटाबेस पर प्रमाणित करें

नमूना आदेश:

  1. mongod --port 27017 --dbpath /data/db1
  2. use educationDb;
  3. db.createUser({ user : 'readonly', pwd: 'readonly', roles : ['read']})
  4. db.xyz.insert({"name":"nix.education"})
  5. मोंगोड को रोको / मारो
  6. mongod --auth --port 27017 --dbpath /data/db1
  7. use educationDb;
  8. db.auth('readonly','readonly')

0
2017-07-07 08:25