मैं स्थानीय और उत्पादन पर एक ही कनेक्शन स्ट्रिंग का उपयोग कर रहा हूं। जब कनेक्शन स्ट्रिंग हैmongodb://localhost/mydb
उपयोगकर्ता नाम और पासवर्ड क्या है? क्या इसे इस तरह रखना सुरक्षित है?
मैं स्थानीय और उत्पादन पर एक ही कनेक्शन स्ट्रिंग का उपयोग कर रहा हूं। जब कनेक्शन स्ट्रिंग हैmongodb://localhost/mydb
उपयोगकर्ता नाम और पासवर्ड क्या है? क्या इसे इस तरह रखना सुरक्षित है?
जवाबों:
डिफ़ॉल्ट रूप से मोंगॉडब में कोई सक्षम अभिगम नियंत्रण नहीं है, इसलिए कोई डिफ़ॉल्ट उपयोगकर्ता या पासवर्ड नहीं है।
एक्सेस कंट्रोल को सक्षम करने के लिए, कमांड लाइन विकल्प --auth
या सुरक्षा.ऑथराइजेशन कॉन्फ़िगरेशन फ़ाइल सेटिंग का उपयोग करें।
आप निम्नलिखित प्रक्रिया का उपयोग कर सकते हैं या MongoDB डॉक्स में प्रमाणीकरण सक्षम कर सकते हैं ।
पहुँच नियंत्रण के बिना MongoDB प्रारंभ करें।
mongod --port 27017 --dbpath /data/db1
उदाहरण से कनेक्ट करें।
mongo --port 27017
उपयोगकर्ता व्यवस्थापक बनाएँ।
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
एक्सेस कंट्रोल के साथ MongoDB इंस्टेंस को फिर से शुरू करें।
mongod --auth --port 27017 --dbpath /data/db1
उपयोगकर्ता व्यवस्थापक के रूप में प्रमाणित करें।
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
@Camilo सिल्वा ने जो पहले ही उल्लेख किया है, उसके अलावा, यदि आप डेटाबेस बनाने, पढ़ने, लिखने, डेटाबेस बनाने आदि के लिए मुफ्त पहुंच देना चाहते हैं, लेकिन आप कोई मूल भूमिका नहीं बनाना चाहते हैं, तो आप निम्न के साथ तीसरा चरण बदल सकते हैं:
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" } ]
}
)
2.6 से पहले के MongoDB के लिए, रूट उपयोगकर्ता जोड़ने का कमांड है addUser
(जैसे)
db.addUser({user:'admin',pwd:'<password>',roles:["root"]})
db.addUser
। 2.6 और वर्तमान संस्करण 3.4.x में आप के साथ एक उपयोगकर्ता बना सकते हैं db.CreateUser
।
पहले दिए गए जवाबों के अलावा, पहला विकल्प यह है कि 'dbhoho' अपवाद का उपयोग करके पहला उपयोगकर्ता बनाएं, अगर आपका db पहले ही एक्सेस कंट्रोल ( --auth
स्विच) के साथ शुरू हो गया है । ऐसा करने के लिए, आपको सर्वर पर लोकलहोस्ट एक्सेस की आवश्यकता होगी और फिर चलाएं:
mongo
use admin
db.createUser(
{
user: "user_name",
pwd: "user_pass",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" }
]
})
जैसा कि MongoDB प्रलेखन में कहा गया है:
लोकलहोस्ट अपवाद आपको एक्सेस कंट्रोल को सक्षम करने और फिर सिस्टम में पहला उपयोगकर्ता बनाने की अनुमति देता है। स्थानीयहोस्ट अपवाद के साथ, आप अभिगम नियंत्रण सक्षम करने के बाद, स्थानीयहोस्ट इंटरफ़ेस से कनेक्ट करें और व्यवस्थापक डेटाबेस में पहला उपयोगकर्ता बनाएं। पहले उपयोगकर्ता के पास अन्य उपयोगकर्ता बनाने के लिए विशेषाधिकार होना चाहिए, जैसे कि userAdmin या userAdminAnyDatabase भूमिका वाला उपयोगकर्ता। लोकलहोस्ट अपवाद का उपयोग करने वाले कनेक्शनों तक केवल व्यवस्थापक डेटाबेस पर पहला उपयोगकर्ता बनाने के लिए पहुंच है।
यहाँ डॉक्स के उस सेक्शन का लिंक दिया गया है ।