MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

डोकर के माध्यम से MongoDB पर प्रमाणीकरण कैसे सक्षम करें?

यदि आप एक नज़र डालते हैं:

  • https://github.com/docker-library/mongo/blob/master/4.2/Dockerfile
  • https://github.com/docker-library/mongo/blob/master/4.2/docker-entrypoint.sh#L303-L313

आप देखेंगे कि docker-entrypoint.sh . में दो चर का उपयोग किया जाता है :

  • MONGO_INITDB_ROOT_USERNAME
  • MONGO_INITDB_ROOT_PASSWORD

आप रूट उपयोगकर्ता को सेटअप करने के लिए उनका उपयोग कर सकते हैं। उदाहरण के लिए आप निम्नलिखित का उपयोग कर सकते हैं docker-compose.yml फ़ाइल:

mongo-container:
  image: mongo:3.4.2
  environment:
      # provide your credentials here
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=rootPassXXX
  ports:
    - "27017:27017"
  volumes:
      # if you wish to setup additional user accounts specific per DB or with different roles you can use following entry point
    - "$PWD/mongo-entrypoint/:/docker-entrypoint-initdb.d/"
  # no --auth is needed here as presence of username and password add this option automatically
  command: mongod

अब कंटेनर को docker-compose up . द्वारा प्रारंभ करते समय आपको निम्नलिखित प्रविष्टियों पर ध्यान देना चाहिए:

...
I CONTROL  [initandlisten] options: { net: { bindIp: "127.0.0.1" }, processManagement: { fork: true }, security: { authorization: "enabled" }, systemLog: { destination: "file", path: "/proc/1/fd/1" } }
...
I ACCESS   [conn1] note: no users configured in admin.system.users, allowing localhost access
...
Successfully added user: {
    "user" : "root",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

रूट के अलावा कस्टम उपयोगकर्ताओं को जोड़ने के लिए एंट्रीपॉइंट एक्जीक्यूटेबल स्क्रिप्ट ($PWD/mongo-entrypoint dir के तहत रखा गया है क्योंकि इसे docker-compose में माउंट किया गया है) प्रवेश बिंदु पर):

#!/usr/bin/env bash
echo "Creating mongo users..."
mongo admin --host localhost -u USER_PREVIOUSLY_DEFINED -p PASS_YOU_PREVIOUSLY_DEFINED --eval "db.createUser({user: 'ANOTHER_USER', pwd: 'PASS', roles: [{role: 'readWrite', db: 'xxx'}]}); db.createUser({user: 'admin', pwd: 'PASS', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]});"
echo "Mongo users created."

एंट्रीपॉइंट स्क्रिप्ट निष्पादित की जाएगी और अतिरिक्त उपयोगकर्ता बनाए जाएंगे।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में किसी सरणी में किसी आइटम का एक उदाहरण कैसे खींचें?

  2. $एकत्रीकरण ढांचे में किसी वस्तु को खोलना

  3. मोंगोडीबी मैप्रिडस में, मैं वैल्यू ऑब्जेक्ट को कैसे फ़्लैट कर सकता हूं?

  4. Azure पर सबसे तेज़ MongoDB!

  5. mongoDB से उसके मुख्य नाम से कोई मान कैसे प्राप्त करें?