2014-05-12 4 views
19

MongoDB 2.6.1 में मैं सेटअप dbAdmin अधिकारों वाले उपयोगकर्ता है:MongoDB क्वेरी के लिए अधिकृत नहीं - कोड 13

{ 
     "_id" : "mydbname.myusername", 
     "user" : "myusername", 
     "db" : "mydbname", 
     "credentials" : { 
       "MONGODB-CR" : "<some credentials>" 
     }, 
     "roles" : [ 
       { 
         "role" : "dbAdmin", 
         "db" : "mydbname" 
       } 
     ] 
} 

जब मैं डेटाबेस से कनेक्ट करने के लिए मोंगो खोल का उपयोग करें (-u और का उपयोग कर - कमांड लाइन पर पी) और इस तरह एक प्रश्न चलाएँ:

error: { "$err" : "not authorized for query on mydbname.request", "code" : 13 } 
कोई भी विचार

क्या हो रहा जा सकता है:

db.mycollectionname.find() 

मैं इस त्रुटि मिलती है?

अभी तक मैंने उपयोगकर्ता को जो भी भूमिका मिल सकती है उसे जोड़ने का प्रयास किया है, लेकिन इससे मदद नहीं मिली है।

+0

क्या आप अब तक जो भूमिकाएं जोड़ चुके हैं, उनकी पूरी सूची साझा कर सकते हैं? –

उत्तर

19

आपको प्रश्न में उपयोगकर्ता को read भूमिका नियुक्त करने की आवश्यकता है।

dbAdmin भूमिका नहींगैर प्रणाली संग्रह पर पढ़ा एक्सेस करता है।

+21

आप इसे कैसे जोड़ते हैं? – CodyBugstein

+29

पृथ्वी पर प्रवेश करने वाले अधिकारों के अधिकार क्यों नहीं हैं? – duhaime

9

@ सेबेस्टियन के जवाब के अलावा, कि स्पष्ट रूप का अर्थ है:

Grant a Role

Grant a role using the db.grantRolesToUser() method. For example, the following operation grants the reportsUser user the read role on the accounts database:

db.grantRolesToUser(
    "your_user", 
    [ 
     { role: "read", db: "your_db" } 
    ] 
) 
19

मोंगो 3.0.6 के खिलाफ इस समस्या में चल रहा है किसी को भी के लिए, मैं पर

?authMode=scram-sha1 

जोड़कर तय मेरे मोंगोडब यूरी का अंत

यहाँ कुछ scram-sha1

+0

कुछ दस्तावेज़ों के लिए जोड़ा गया लिंक। – arcseldon

+0

इसे यूरी में जोड़ने के बाद, मैं मोंगोबूस्टर का उपयोग करके कमांड चलाने में सक्षम था और मेरी अनूठी संपत्ति भी काम करती थी, क्या आप कृपया बता सकते हैं क्यों? –

-3

जब तक मुझे एहसास हुआ कि मैं एक गलती की है मैं एक ही समस्या हो रही थी के प्रयोजन समझा डॉक्स कर रहे हैं। मैं बिना किसी समझ के माता-पिता पर्ल क्लास से एक अलग डेटाबेस को इंगित करने वाले एक मोंगो क्लाइंट को विरासत में मिला था। हो सकता है कि आप कुछ जांच सकें।

4

मैं इसे पोस्ट कर रहा हूं क्योंकि मुझे इस समाधान को ऑनलाइन ढूंढने में परेशानी थी। समस्या शर्मनाक है लेकिन त्रुटि संदेश और परिदृश्य इसे समझने में कुछ मुश्किल बना देता है, इसलिए मैं किसी को कुछ दर्द बचाने की उम्मीद कर रहा हूं। मेरा एप्लिकेशन डेटाबेस कनेक्शन स्थापित करने, स्थिर पृष्ठों को शुरू करने और सेवा करने में सक्षम था, लेकिन हर बार जब यह एक क्वेरी निष्पादित करने का प्रयास करता था तो मुझे यह त्रुटि मिली।

MongoError: not authorized on mydb to execute command { count: "urls", query: {} } 

यह त्रुटि एक उपयोगकर्ता आईडी और पासवर्ड गलत विभाजक

mongodb://myuserid/[email protected]:12345/mydb [wrong] 
mongodb://myuserid:[email protected]:12345/mydb [right] 

जबकि नोड आवेदन सफलतापूर्वक MongoDB से कनेक्ट करने में सक्षम था के साथ की वजह से किया गया था, प्रारूप गलत यूआरआई वजह से चालक प्रमाणीकरण पहले छोड़ डेटाबेस आदेश जारी करने के लिए।

धन्यवाद और एमएलएबी समर्थन पर लोगों को टोपी टिप।

+1

यह वास्तव में यूआरएल एन्कोडिंग के माध्यम से मूल HTTP प्रमाणीकरण परिभाषित किया गया है - इस मानक का पालन करने वाले किसी भी संसाधन (जैसे मोंगोडीबी) उसी प्रारूप की मांग करेगा। Https://en.wikipedia.org/wiki/Basic_access_authentication#URL_encoding देखें – rsenna

संबंधित मुद्दे