authentication - उपयोगकर्ता नाम और पासवर्ड के साथ MongoDB को कैसे सुरक्षित करें




(8)

आपको उस डेटाबेस पर स्विच करने की आवश्यकता होगी जिसे आप उपयोगकर्ता चाहते हैं (व्यवस्थापक डीबी नहीं) ...

use mydatabase

अधिक सहायता के लिए इस पोस्ट को देखें ... http://learnmongo.com/posts/quick-tip-mongodb-users/

मैं अपने मोंगोडीबी उदाहरण के लिए उपयोगकर्ता नाम और पासवर्ड प्रमाणीकरण सेट अप करना चाहता हूं, ताकि कोई भी दूरस्थ पहुंच उपयोगकर्ता नाम और पासवर्ड मांगे। मैंने मोंगोडीबी साइट से ट्यूटोरियल की कोशिश की और निम्नलिखित किया:

use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');

उसके बाद, मैं बाहर निकला और फिर मोंगो भाग गया। और मुझे इसे एक्सेस करने के लिए पासवर्ड की आवश्यकता नहीं है। यहां तक ​​कि यदि मैं दूरस्थ रूप से डेटाबेस से कनेक्ट करता हूं, तो मुझे उपयोगकर्ता नाम और पासवर्ड के लिए संकेत नहीं दिया जाता है।

अद्यतन यहां समाधान है जिसका उपयोग मैंने समाप्त किया था

1) At the mongo command line, set the administrator:

    use admin;
    db.addUser('admin','123456');

2) Shutdown the server and exit

    db.shutdownServer();
    exit

3) Restart mongod with --auth

  $ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/

4) Run mongo again in 2 ways:

   i) run mongo first then login:

        $ ./mongodb/bin/mongo localhost:27017
        use admin
        db.auth('admin','123456');

  ii) run & login to mongo in command line.

        $ ./mongodb/bin/mongo localhost:27017/admin -u admin -p 123456

उपयोगकर्ता नाम और पासवर्ड mongodump और mongoexport लिए उसी तरह काम करेगा।


उपयोगकर्ता को स्थापित करने के बाद आपको --auth विकल्प के साथ mongod शुरू करने की आवश्यकता है।

MongoDB साइट से:

सुरक्षा सक्षम करने के लिए --auth विकल्प के साथ डेटाबेस (mongod प्रक्रिया) --auth । सर्वर को शुरू करने से पहले आपको या तो व्यवस्थापक डीबी में उपयोगकर्ता जोड़ा होगा, या --auth इंटरफ़ेस से पहला उपयोगकर्ता जोड़ें।

MongoDB प्रमाणीकरण


टर्मिनल पर पहले mongoDB का उपयोग करें

mongod

अब आदेशों के बाद मोंगो खोल का उपयोग करें

    use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

एक्सेस नियंत्रण के साथ मोंगोडीबी उदाहरण दोबारा शुरू करें।

mongod --auth

अब अपने आप को कमांड लाइन से प्रमाणित करें

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

मैंने इसे पढ़ा

https://docs.mongodb.com/manual/tutorial/enable-authentication/


नए उपयोगकर्ता को बनाने के बाद, कृपया उपयोगकर्ता को read/write/root अनुमति grant लिए मत भूलना। आप कोशिश कर सकते हैं

cmd: db.grantRolesToUser('yourNewUsername',[{ role: "root", db: "admin" }])


ये कदम मुझ पर काम करते थे:

  1. cmd पर mongod --port 27017 लिखें
  2. फिर मोंगो खोल से कनेक्ट करें: mongo --port 27017
  3. उपयोगकर्ता व्यवस्थापक बनाएं: व्यवस्थापक db.createUser का उपयोग करें ({उपयोगकर्ता: "myUserAdmin", pwd: "abc123", भूमिकाएं: [{भूमिका: "userAdminAnyDatabase", डीबी: "व्यवस्थापक"}]})
  4. मोंगो खोल डिस्कनेक्ट करें
  5. mongodb को पुनरारंभ करें: mongod --auth --port 27017
  6. मोंगो खोल शुरू करें: मोंगो --पोर्ट 27017 -u "myUserAdmin" -p "abc123" - प्रमाणीकरणडेटाबेस "व्यवस्थापक"
  7. कनेक्ट करने के बाद प्रमाणित करने के लिए, मोंगो खोल को मोंगोड से कनेक्ट करें: mongo --port 27017
  8. प्रमाणीकरण डेटाबेस पर स्विच करें: व्यवस्थापक db.auth का उपयोग करें ("myUserAdmin", "abc123"

सबसे पहले, अपनी mongod कॉन्फ़िगरेशन फ़ाइल (डिफ़ॉल्ट पथ /etc/mongo.conf ) में #auth=true साथ शुरू होने वाली रेखा को अन-टिप्पणी करें। यह mongodb के लिए प्रमाणीकरण सक्षम करेगा।

फिर, mongodb पुनरारंभ करें: sudo service mongod restart


वाह यहाँ बहुत जटिल / भ्रमित जवाब वाह।

यह 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) मोंगोडीबी उदाहरण को रोकें और इसे एक्सेस कंट्रोल के साथ फिर से शुरू करें।

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 प्रमाणीकरण डेटाबेस में उपयोगकर्ता व्यवस्थापक बनाता है। उपयोगकर्ता some_db डेटाबेस पर 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) मोंगोडीबी उदाहरण को रोकें और इसे एक्सेस कंट्रोल के साथ फिर से शुरू करें।

mongod --auth --dbpath /data/db

5) admin प्रमाणीकरण डेटाबेस की ओर उपयोगकर्ता व्यवस्थापक के रूप में कनेक्ट और प्रमाणित करें, some_db प्रमाणीकरण डेटाबेस की ओर नहीं। उपयोगकर्ता व्यवस्थापक admin प्रमाणीकरण डेटाबेस में बनाया गया था, उपयोगकर्ता some_db प्रमाणीकरण डेटाबेस में मौजूद नहीं है।

use admin
db.auth("myDbOwner", "abc123")

अब आप some_db डेटाबेस पर dbOwner रूप में प्रमाणित हैं। तो अब अगर आप 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({})

use dbName
db.createUser(
   {
     user: "dbUser",
     pwd: "dbPassword",
     roles: [ "readWrite", "dbAdmin" ]
   }
)




mongodb