मैं एक सुपरयूज़र या रीसेट उपयोगकर्ताओं के रूप में मोंगो कैसे दर्ज कर सकता हूं?


29

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

जवाबों:


38

यदि आपने खुद को बाहर बंद कर लिया है तो आपको निम्न कार्य करने की आवश्यकता है:

  1. अपने MongoDB उदाहरण को रोकें
  2. प्रमाणीकरण को अक्षम करने के लिए अपने MongoDB कॉन्फ़िगरेशन से --auth और / या -keyfile विकल्प निकालें
  3. प्रमाणीकरण के बिना उदाहरण शुरू करें
  4. आवश्यकतानुसार उपयोगकर्ताओं को संपादित करें
  5. सक्षम प्रमाणीकरण के साथ आवृत्ति को पुनरारंभ करें

ऑर्टिकल को हटाना वास्तव में पर्याप्त नहीं था, धन्यवाद!
आंद्रेई

14

मेरे पास एक ऐसा ही मुद्दा था जब मैंने पहली बार एक सुपरयूजर को जोड़े बिना एक उपयोगकर्ता बनाया था। निम्नलिखित चरणों ने समस्या को हल करने में मदद की:

  1. sudo( sudo vi mongodb.conf) का उपयोग करके MongoDB कॉन्फ़िगरेशन फ़ाइल खोलें ।
    फ़ाइल को /etc/फ़ोल्डर में पाया जा सकता है ।
  2. टिप्पणी करें "auth = true"
  3. MongoDB सेवा बंद करें ( sudo service mongod stop)
  4. MongoDB सेवा ( sudo service mongod start) शुरू करें
  5. फिर नीचे दिए गए कमांड का उपयोग करके "रूट" सुपरयुसर बनाएं:

    use admin
    
    db.createUser({user:"admin",pwd:"password",roles:[{role:"root",db:"admin"}]});

    संदर्भ के लिए https://docs.mongodb.com/manual/reference/built-in-roles/#superuser-stles

  6. वापस जाओ और असहजता "auth=true"। स्टॉप एंड स्टार्ट / रिस्टार्ट मोंगोडब सर्विस।


मैं आपको पर्याप्त धन्यवाद नहीं दे सकता। जब मैं इस परियोजना को सर्वर पर अपलोड करने की कोशिश कर रहा हूं, तो यह जानने की कोशिश कर रहा हूं। आपको बहुत - बहुत धन्यवाद! :)
वूपी

डिट्टो। सर्वर त्रुटि संदेश इस पर शानदार रूप से अनहेल्दी हैं। धन्यवाद!
टॉम

7

यदि आप एक के साथ एक प्रतिकृति सेट का उपयोग करेंkeyfile

आंतरिक प्रमाणीकरण का उपयोग करके प्रतिकृति के सदस्यों के बीच सुरक्षा

Keyfile का उपयोग प्रतिकृति में स्थिति के लिए किया जाता है।

security:
  keyFile: <path-to-keyfile>
replication:
  replSetName: <replicaSetName>

आप इस आदेश का उपयोग एक व्यवस्थापक के रूप में लॉगिन करने के लिए कर सकते हैं:

mongo -u __system -p "$(tr -d '\011-\015\040' < path-to-keyfile)" --authenticationDatabase local

बाद में आप अपने व्यवस्थापक उपयोगकर्ता को बनाने या संशोधित करने में सक्षम हैं।

आंतरिक भूमिका

__systemMongoDB यह भूमिका उन उपयोगकर्ता ऑब्जेक्ट्स को प्रदान करता है जो क्लस्टर सदस्यों का प्रतिनिधित्व करते हैं, जैसे कि प्रतिकृति सेट सदस्य और मंगोल उदाहरण। भूमिका अपने धारक को डेटाबेस में किसी भी वस्तु के खिलाफ कोई कार्रवाई करने का अधिकार देती है।

असाधारण परिस्थितियों के अलावा, अनुप्रयोगों या मानव प्रशासकों का प्रतिनिधित्व करने वाली उपयोगकर्ता वस्तुओं को यह भूमिका प्रदान न करें।


आपको यह सूचना कहां मिली।
ऑक्टोहिड्रॉन

2

इस प्रश्न के उत्तर की जाँच करें, वे मदद कर सकते हैं

https://stackoverflow.com/questions/20117104/mongodb-root-user

मूल रूप से यदि आपके पास अभी भी सर्वर तक पहुंच है, तो आप Adminडेटाबेस तक पहुंचने में सक्षम हो सकते हैं ।

इस पृष्ठ में अधिक है http://docs.mongodb.org/v2.4/reference/user-privileges/

ध्यान दें कि 2.6 संस्करण बदलता है यह पूरी तरह से कैसे काम करता है। 2.6 के लिए आपको http://docs.mongodb.org/manual/security/ के साथ अधिक समय बिताना होगा


1
जैसा कि पोस्ट में बताया गया है, यह एकमात्र ऐसी जानकारी है जिसे मैं खोजने में सक्षम हूं। मेरे पास ऐसा करने की अनुमति नहीं है
टोनी

0

आपको Mongo को रोकना है, व्यवस्थापक फ़ाइलों को हटाना है, फिर Mongo को प्रारंभ करना है

sudo service mongod stop
mv /data/admin.* .
sudo service mongod start

2
यह प्रशासनिक उपयोगकर्ताओं के डेटाबेस को नष्ट कर रहा है और "localHostExcetption" के माध्यम से पहुंच की अनुमति देता है। यह उपयोगकर्ताओं के लिए एक अच्छा तरीका नहीं है जब आपको कोई समस्या होती है।
daveh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.