আরেকটি সম্ভাবনা: আপনি যখন ব্যবহারকারীটি তৈরি করেছেন, আপনি সম্ভবত দুর্ঘটনাক্রমে বা আপনি যা চেয়েছিলেন সেটি ব্যতীত use
অন্য কোনও ডেটাবেস যুক্ত করেছেন admin
। --authenticationDatabase
আপনাকে সেই ডাটাবেসটিতে সেট করতে হবে যা ব্যবহারকারী প্রকৃতপক্ষে তৈরি হয়েছিল।
mongodb
test
শেলটি খোলার সময় আপনাকে ডিফল্টরূপে আপনাকে ডাটাবেসে রেখে দেবে বলে মনে হচ্ছে আপনি দৌড়ানোর সময় ভুলবশত ইঙ্গিত --authenticationDatabase test
না করে বরং আপনাকে লিখতে হবে--authenticationDatabase admin
use
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(...)
আশা করি এটি এই স্টাফটির সাথে নুব হিসাবে আমার পদে থাকা কাউকে সহায়তা করে।