वाह इतने सारे जटिल / भ्रामक जवाब यहाँ।
यह के रूप में है v3.4 के ।
संक्षिप्त जवाब।
1) एक्सेस कंट्रोल के बिना MongoDB शुरू करें।
mongod --dbpath /data/db
2) उदाहरण से कनेक्ट करें।
mongo
3) उपयोगकर्ता बनाएँ।
use some_db
db.createUser(
{
user: "myNormalUser",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "some_db" },
{ role: "read", db: "some_other_db" } ]
}
)
4) MongoDB उदाहरण को रोकें और अभिगम नियंत्रण के साथ इसे फिर से शुरू करें।
mongod --auth --dbpath /data/db
5) उपयोगकर्ता के रूप में कनेक्ट और प्रमाणित करें।
use some_db
db.auth("myNormalUser", "xyz123")
db.foo.insert({x:1})
use some_other_db
db.foo.find({})
दीर्घ उत्तर: इसे पढ़ें यदि आप ठीक से समझना चाहते हैं।
यह वास्तव में सरल है। मैं निम्नलिखित को नीचे दूंगा https://docs.mongodb.com/manual/tutorial/enable-authentication/
यदि आप इस बारे में अधिक जानना चाहते हैं कि भूमिकाएँ वास्तव में यहाँ और अधिक क्या पढ़ती हैं: https://docs.mongodb.com/manual/reference/built-in-roles/
1) एक्सेस कंट्रोल के बिना MongoDB शुरू करें।
mongod --dbpath /data/db
2) उदाहरण से कनेक्ट करें।
mongo
3) उपयोगकर्ता व्यवस्थापक बनाएँ। निम्न admin
प्रमाणीकरण डेटाबेस में एक उपयोगकर्ता व्यवस्थापक बनाता है । उपयोगकर्ता एक है dbOwner
से अधिक some_db
डेटाबेस और नहीं से अधिक admin
डेटाबेस, यह याद रखना महत्वपूर्ण है।
use admin
db.createUser(
{
user: "myDbOwner",
pwd: "abc123",
roles: [ { role: "dbOwner", db: "some_db" } ]
}
)
या यदि आप एक ऐसा व्यवस्थापक बनाना चाहते हैं जो किसी भी डेटाबेस पर व्यवस्थापक है:
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
4) MongoDB उदाहरण को रोकें और अभिगम नियंत्रण के साथ इसे फिर से शुरू करें।
mongod --auth --dbpath /data/db
5) admin
प्रमाणीकरण डेटाबेस के प्रति उपयोगकर्ता व्यवस्थापक के रूप में कनेक्ट और प्रमाणित करें, प्रमाणीकरण डेटाबेस की ओर नहीं some_db
। उपयोगकर्ता व्यवस्थापक admin
प्रमाणीकरण डेटाबेस में बनाया गया था , उपयोगकर्ता some_db
प्रमाणीकरण डेटाबेस में मौजूद नहीं है ।
use admin
db.auth("myDbOwner", "abc123")
अब आप एक के रूप में प्रमाणीकृत हैं dbOwner
अधिक some_db
डेटाबेस। तो अब अगर आप उस some_db
डेटाबेस की ओर सीधे पढ़ना / लिखना / सामान करना चाहते हैं जिसे आप इसे बदल सकते हैं।
use some_db
//...do stuff like db.foo.insert({x:1})
// remember that the user administrator had dbOwner rights so the user may write/read, if you create a user with userAdmin they will not be able to read/write for example.
भूमिकाओं पर अधिक: https://docs.mongodb.com/manual/reference/built-in-roles/
यदि आप अतिरिक्त उपयोगकर्ता बनाना चाहते हैं जो उपयोगकर्ता प्रशासक नहीं हैं और जो सामान्य उपयोगकर्ता हैं तो नीचे पढ़ना जारी रखें।
6) एक सामान्य उपयोगकर्ता बनाएं। यह उपयोगकर्ता नीचे some_db
प्रमाणीकरण डेटाबेस में बनाया जाएगा ।
use some_db
db.createUser(
{
user: "myNormalUser",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "some_db" },
{ role: "read", db: "some_other_db" } ]
}
)
7) मानगो शेल से बाहर निकलें, फिर से कनेक्ट करें, उपयोगकर्ता के रूप में प्रमाणित करें।
use some_db
db.auth("myNormalUser", "xyz123")
db.foo.insert({x:1})
use some_other_db
db.foo.find({})