एक और संभावना: जब आपने उपयोगकर्ता को बनाया है, तो आप गलती से use
एक डेटाबेस को छोड़कर admin
, या आपके इच्छित अन्य के अलावा हो सकते हैं । आपको --authenticationDatabase
उस डेटाबेस पर सेट करना होगा जिसे उपयोगकर्ता वास्तव में बनाया गया था।
mongodb
में डाल रहा है test
, जब आप खोल खोल डिफ़ॉल्ट रूप से डेटाबेस है, तो आप लिखने के लिए आवश्यकता होगी --authenticationDatabase test
बजाय --authenticationDatabase admin
अगर आप गलती से किया गया use
ing test
जब तुम भाग गया db.createUser(...)
।
मान लें कि आपके पास मशीन है जो मोंगोडब इंस्टेंस को चला रही है, तो आप प्राधिकरण को निष्क्रिय कर सकते हैं /etc/mongod.conf
(टिप्पणी authorization
जो सुरक्षा के तहत नेस्टेड है), और फिर अपने सर्वर को पुनरारंभ करें, और फिर चलाएं:
mongo
show users
और आपको ऐसा कुछ मिल सकता है:
{
"_id" : "test.myusername",
"user" : "myusername",
"db" : "test",
"roles" : [
{
"role" : "dbOwner",
"db" : "mydatabasename"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
ध्यान दें कि db
मान बराबर होता है test
। ऐसा इसलिए है क्योंकि जब मैंने उपयोगकर्ता बनाया था, तो मैं पहले नहीं चला था use admin
या use desiredDatabaseName
। इसलिए आप उपयोगकर्ता को हटा सकते हैं db.dropUser("myusername")
और फिर अपने इच्छित डेटाबेस के तहत दूसरा उपयोगकर्ता बना सकते हैं जैसे:
use desiredDatabaseName
db.createUser(...)
उम्मीद है कि इस सामान के साथ एक noob के रूप में मेरी स्थिति में था जो किसी की मदद करता है।