गलती यह थी कि मैं एक userAdminAnyDatabase
. का उपयोग कर रहा था उपयोगकर्ता जो नहीं . था व्यवस्थापक . में डेटाबेस (यह नोट देखें)। तो वहाँ जरूरी व्यवस्थापक . नामक डेटाबेस बनें आपके सर्वर पर! जैसा कि प्रलेखन "AnyDatabase" विशेषाधिकारों के लिए कहता है:
यदि आप व्यवस्थापक डेटाबेस के बाहर किसी उपयोगकर्ता विशेषाधिकार दस्तावेज़ में इनमें से कोई भी भूमिका जोड़ते हैं, तो विशेषाधिकार का कोई प्रभाव नहीं पड़ेगा।
तो आपको यह करना होगा:
-
एक
userAdminAnyDatabase
जोड़ेंadmin
. को डीबी$ mongo admin > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] })
-
प्रमाणीकरण चालू करें
auth = true setParameter = enableLocalhostAuthBypass=0
-
नए
myadmin
. का उपयोग करके कनेक्ट करें किसी भी डेटाबेस में उपयोगकर्ता जो आप चाहते हैं और आगे के उपयोगकर्ता जोड़ें:$ mongo another -u myadmin -p 1234 > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })
या
> use another > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })