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