MongoDB: सर्वर में स्टार्टअप चेतावनी है '' डेटाबेस के लिए एक्सेस कंट्रोल सक्षम नहीं है ''


89

मैंने आज सबसे पहले MongoDB 3.4.1 स्थापित किया। लेकिन जब मैंने इसे शुरू किया और MongoDB शेल का उपयोग किया, तो इसने मुझे ये चेतावनी दी:

C:\Users\hs>"C:\Program Files\MongoDB\Server\3.4\bin\mongo.exe
MongoDB shell version v3.4.1
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.1
Server has startup warnings:
2017-01-12T21:19:46.941+0800 I CONTROL  [initandlisten]
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten]

मेरा कंप्यूटर Microsoft विंडोज [ version 10.0.14393] है।



6
यह एक और सवाल का लगभग सही डुप्लिकेट है। क्या आपने पिछले साल एक अलग उपयोगकर्ता नाम के तहत पहले से ही पूछा है? केवल एक चीज जो अलग है वह विंडोज का उपयोगकर्ता नाम और संस्करण है। देखें: stackoverflow.com/questions/36660117/…
जोसेफ फेरिस

@JosephFerris, हाँ, यह stackoverflow.com/questions/36660117/… के लिए दोहराव है और यह प्रश्न इस दोहराव के कारण बंद हो गया है।
लकमल विथानगे

जवाबों:


137

मोंगोडब v3.4

सुरक्षित डेटाबेस बनाने के लिए आपको निम्नलिखित कार्य करने होंगे:

सुनिश्चित करें कि प्रक्रिया शुरू करने वाले उपयोगकर्ता के पास अनुमतियाँ हैं और निर्देशिका मौजूद है ( /data/dbइस मामले में)।

1) एक्सेस कंट्रोल के बिना MongoDB शुरू करें।

mongod --port 27017 --dbpath /data/db

2) उदाहरण से कनेक्ट करें।

mongo --port 27017

3) उपयोगकर्ता व्यवस्थापक (व्यवस्थापक प्रमाणीकरण डेटाबेस में ) बनाएँ ।

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

4) पहुँच नियंत्रण के साथ MongoDB उदाहरण को फिर से शुरू करें।

mongod --auth --port 27017 --dbpath /data/db

5) उपयोगकर्ता व्यवस्थापक के रूप में कनेक्ट और प्रमाणित करें।

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

6) अपनी तैनाती के लिए आवश्यकतानुसार अतिरिक्त उपयोगकर्ता बनाएं (जैसे परीक्षण प्रमाणीकरण डेटाबेस में)

use test
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)

7) MyTester के रूप में कनेक्ट और प्रमाणित करें।

mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"

मैंने मूल रूप से केवल आधिकारिक डॉक्स के संक्षिप्त संस्करण को यहाँ समझाया: https://docs.mongodb.com/master/tutorial/enable-authentication/


1
मुझे पसंद है कि आपने कहा है लेकिन सिर्फ एक समस्या यह है कि इस समय को हर बार या एक समय के लिए गुजरना होगा। अगर हर समय तो सेवा के साथ कैसे देना है क्योंकि एक सर्वर में मैं इस sudo सेवा MongoDB शुरू करना चाहते हैं?
सुरेश पारीक

5
@sureshpareek आप mongodb.conf फ़ाइल में इस कॉन्फ़िगर कर सकते हैं यदि आप इसे हर पारित करने के लिए नहीं करना चाहते हैं, अधिक जानकारी यहाँ: docs.mongodb.com/manual/reference/configuration-options/...
basickarl

1
@sureshpareek कोई बात नहीं यार! यहां देखें कि क्या आप इसके बारे में अधिक जानना चाहते हैं: stackoverflow.com/a/42929869/1137669 मैं थोड़ा और विस्तार से बताता हूं।
बेसिकर्ल

मैं पहले चरण में असफल मैं संस्करण v3.6.5 था व्याप्ति ही चेतावनी और यह बंद
wyx

7
गंभीरता से दोस्तों ... आप ????? security.authorizationमें सक्षम करने के लिए क्यों नहीं कहते हैं? mongod.conf
जॉन

-5

आपको अपने पुराने db फ़ोल्डर को हटाने और नए को फिर से बनाने की आवश्यकता है। यह आपकी समस्या का समाधान करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.