जब भी आप mongodb सेटअप करते हैं, तो आपको userAdminAnyDatabase की भूमिका के साथ एक व्यवस्थापक उपयोगकर्ता बनाना चाहिए, और आप इस उपयोगकर्ता को बनाने में सक्षम होंगे, यहां तक कि mongod को --auth के साथ शुरू किया गया है या नहीं। आप इस उपयोगकर्ता को निम्न आदेश द्वारा बना सकते हैं।
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
इसके बाद यदि प्राधिकरण चालू नहीं है, तो रननिग मोंगोड द्वारा --auth ध्वज के साथ, या mongod.conf में प्राधिकरण चालू करें और mongod सर्वर को पुनरारंभ करें।
फिर व्यवस्थापक उपयोगकर्ता के साथ नीचे दिए गए आदेश द्वारा mongo shell में लॉगिन करें
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
डेटाबेस पर जाएं, और रीडराइट अनुमति के साथ एक उपयोगकर्ता बनाएं।
use myapplication
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "myapplication" }]
}
)
अब आप myTester उपयोगकर्ता का उपयोग myapplication डेटाबेस में पढ़ने/लिखने के लिए कर सकते हैं, और जब भी आप एक नया डेटाबेस बनाते हैं, तो myUserAdmin उपयोगकर्ता के साथ mongo shell प्रारंभ करें और नए डेटाबेस के लिए एक नया उपयोगकर्ता बनाएं।
मोंगोडब में आप एक एकल उपयोगकर्ता भी बना सकते हैं, और उसे सभी डेटाबेस के लिए सभी अनुमतियां दे सकते हैं, लेकिन आपको ऐसा नहीं करना चाहिए।
यदि आप आगे शोध करना चाहते हैं तो आप नीचे दिए गए लिंक की जांच कर सकते हैं। https://docs.mongodb.com/v3.2/tutorial/ सक्षम-प्रमाणीकरण/
और जब आपने गलती से mongodb को लॉक कर दिया, तो आप mongod.conf फ़ाइल से प्राधिकरण को बंद कर सकते हैं और अपने डेटा तक पहुंच सकते हैं।