2015-04-08 3 views
6

मैं प्रमाणीकरण तंत्र उदाहरण के लिए http://api.mongodb.org/python/current/examples/authentication.html साइट के लिए बात कर रहा हूँ। मैंने एक उपयोगकर्ता व्यवस्थापक बनाया है और इसके प्रमाण-पत्रों का उपयोग करके मैंने अपने 'रिपोर्टिंग' डेटाबेस के लिए एक उपयोगकर्ता बनाया है। अब मुझे उपयोगकर्ता नाम और पासवर्ड का उपयोग कर पिमोंगो के माध्यम से इसका उपयोग करने की आवश्यकता है। मैंने पाइथन खोल में निम्न आदेशों का प्रयास किया। क्या यह सही तरीका है क्योंकि मेरा प्रमाणीकरण विफल रहा है।मैं प्योंगो के माध्यम से mongodb प्रमाणीकरण के लिए उपयोगकर्ता नाम पासवर्ड कैसे वैध कर सकता हूं?

from pymongo import MongoClient 

client = MongoClient('localhost') 

client.reporting.authenticate('reportsUser', '123456', mechanism='MONGODB-CR') 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/dist-packages/pymongo/database.py", line 746, in authenticate 
    self.connection._cache_credentials(self.name, credentials) 
    File "/usr/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 441, in _cache_credentials 
    auth.authenticate(credentials, sock_info, self.__simple_command) 
    File "/usr/lib/python2.7/dist-packages/pymongo/auth.py", line 214, in authenticate 
    auth_func(credentials[1:], sock_info, cmd_func) 
    File "/usr/lib/python2.7/dist-packages/pymongo/auth.py", line 194, in _authenticate_mongo_cr 
    cmd_func(sock_info, source, query) 
    File "/usr/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 607, in __simple_command 
    helpers._check_command_response(response, None, msg) 
    File "/usr/lib/python2.7/dist-packages/pymongo/helpers.py", line 147, in _check_command_response 
    raise OperationFailure(msg % errmsg, code) 
pymongo.errors.OperationFailure: command SON([('authenticate', 1), ('user', u'reportsUser'), ('nonce', u'f8158a24f1c61650'), ('key', u'14cea216c54b93bae20acd2e076bb785')]) failed: auth failed 
+0

आप उपयोगकर्ता को जोड़ना था? क्या आपने 'ऑथ' मोड में मोंगोड शुरू किया था? – itzMEonTV

+0

mongod.conf में सक्षम auth = true और mongod को पुनरारंभ करें। और क्या चाहिए? डेटाबेस – Mrunmayee

+0

ऐड उपयोगकर्ता उपयोगकर्ता मैं डेटाबेस रिपोर्ट करने के लिए बनाया गया है। क्या मुझे इसे व्यवस्थापक डेटाबेस में जोड़ने की ज़रूरत है? – itzMEonTV

उत्तर

8

एक के रूप में FYI करें, आप के रूप में अच्छी URI स्ट्रिंग स्वरूप का उपयोग कर सकते हैं।

pymongo.MongoClient ('MongoDB: // उपयोगकर्ता: पासवर्ड @ सर्वर: पोर्ट /')

यहाँ प्रमाणन के साथ एक सरल कनेक्शन कोड ब्लॉक है:

import pymongo 
conn = pymongo.MongoClient('mongodb://root:[email protected]:27017/') 
db = conn['database'] 
coll = db['collection'] 
स्यूडोकोड इस तरह दिखता है

यहां क्वेरी स्ट्रिंग के लिए और विकल्प हैं: http://docs.mongodb.org/manual/reference/connection-string/

आशा है कि आपकी मदद करता है = ऐसा लगता है कि आपके पास पहले से ही है। हैप्पी कोडिंग !!

+2

यह संभव 2 कदम, जैसे, 'pymongo.MongoClient में यह करने के लिए है .admin.authenticate (mongo_username, mongo_password) '? यूआरआई में उपयोगकर्ता नाम, पासवर्ड पास किए बिना ऐसा करना संभव है? – Shivendra

+0

@ शिवेंद्र: हां, पायमोंगो एससीआरएएम-एसएचए -1 मोड में दो चरण प्रमाणीकरण का समर्थन करता है, जैसा कि यहां उल्लिखित है। http://api.mongodb.com/python/current/examples/authentication.html – kilokahn

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

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