एक और संभावना: जब आपने उपयोगकर्ता को बनाया है, तो आप गलती से useएक डेटाबेस को छोड़कर admin, या आपके इच्छित अन्य के अलावा हो सकते हैं । आपको --authenticationDatabaseउस डेटाबेस पर सेट करना होगा जिसे उपयोगकर्ता वास्तव में बनाया गया था।
mongodbमें डाल रहा है test, जब आप खोल खोल डिफ़ॉल्ट रूप से डेटाबेस है, तो आप लिखने के लिए आवश्यकता होगी --authenticationDatabase testबजाय --authenticationDatabase adminअगर आप गलती से किया गया useing 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 के रूप में मेरी स्थिति में था जो किसी की मदद करता है।