Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Python Eve连接到访问控制的MongoDB复制集_Mongodb_Eve - Fatal编程技术网

从Python Eve连接到访问控制的MongoDB复制集

从Python Eve连接到访问控制的MongoDB复制集,mongodb,eve,Mongodb,Eve,我有一个Eve应用程序,我想连接到mongodb复制集。我可以通过将settings.py中的MONGO\u URI参数设置为mongodb://host/dbName?replicaSet=replicaSetname 但是,现在我已经对副本集启用了访问控制,似乎无法传入用户凭据 我使用的uri格式如下: mongodb://user:password@host/dbName?replicset=replicaSetName&authSource=admin 最令人恼火的是,当我将这个URI直

我有一个Eve应用程序,我想连接到mongodb复制集。我可以通过将
settings.py
中的
MONGO\u URI
参数设置为
mongodb://host/dbName?replicaSet=replicaSetname
但是,现在我已经对副本集启用了访问控制,似乎无法传入用户凭据

我使用的uri格式如下:

mongodb://user:password@host/dbName?replicset=replicaSetName&authSource=admin

最令人恼火的是,当我将这个URI直接提供给数据库时,它会连接并登录而不会出现问题。但是,如果我试图通过eve访问某些内容,我会出现以下错误:

pymongo.errors.OperationFailure:身份验证失败。


我尝试了几种不同的方法,包括在eve中设置
MONGO_用户名
MONGO_密码
参数。我能想到的唯一可能的问题是,我为eve创建的用户的权限有限(在一个数据库上读写)。

经过我的努力,我终于找到了如何在eve上执行此操作,它涉及eve文档中未提及的一些设置:

MONGO_HOST = 'mypod-1.mongo,mypod-2.mongo,mypod-3.mongo;
MONGO_USERNAME = 'user'
MONGO_PASSWORD = 'pass'
MONGO_DBNAME = 'mydb'
MONGO_AUTH_SOURCE = 'admin'
MONGO_REPLICA_SET = 'mySet'

而且,因为这让我绊倒了,所以在您的设置中不要将
MONGO_URI
设置为任何内容,甚至不要将
None
,因为如果eve发现声明了变量,它会尝试将URI用于任何其他设置。

干得好。我将研究代码库,或者至少是文档,看看我们是否可以在框架本身中解决这个问题。