我参考http://api.mongodb.org/python/current/examples/authentication.html站点以获取身份验证机制示例。我创建了一个用户管理员,并使用其凭据为我的“报表”数据库创建了一个用户。现在我需要使用用户名和密码通过pymongo访问。我在python shell中尝试了以下命令。当我的身份验证失败时,这是正确的方法吗。
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
作为参考,您还可以使用URI字符串格式。伪代码如下所示:
pymongo.MongoClient('mongodb://user:password@server:port/')
下面是一个带有auth的简单连接代码块:
这里还有更多的查询字符串选项:http://docs.mongodb.org/manual/reference/connection-string/
希望能帮上忙。快乐编码!!
相关问题 更多 >
编程相关推荐