在PythonE中设置MongoDB授权配置

2024-10-03 17:20:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个启用了授权的MongoDB实例的pythoneve,因此我需要在settings.py中提供用户/通行证凭证,以正确初始化pythoneveapi。在

如果使用MONGO_URI全局配置设置,按照here所述声明数据库终结点,则可以正常工作:

MONGO_URI = 'mongodb://<someuser>:<somepass>@<host>/<auth_db>'

但是如果我根据Eve文档使用另一种可能的方法,即在设置.py,每个部分或URI的单独设置,如下所示:

^{pr2}$

我得到了如下错误:

pymongo.errors.OperationFailure: command SON([('saslStart', 1), ('mechanism', 'SCRAM-SHA-1'), ('autoAuthorize', 1), ('payload', Binary(b'n,,n=root,r=MzcxMTQ1MTM3MTExNDYwNg==', 0))]) on namespace testapp.$cmd failed: Authentication failed.

要让它这样工作,还缺什么?在


Tags: 实例用户py声明heresettingsmongomongodb
2条回答

好吧,我知道怎么回事了。用于检查凭据的身份验证数据库与MONGO_DBNAME相同,而不是MONGO_AUTH_DBNAME值。所以在我的例子中,用户必须存在于<mongo_db>数据库中,而不是我预期的<auth_db>中。在

但是,那么MONGO_AUTHDBNAME设置的目的是什么?在

MONGO_AUTHDBNAME对于某些已弃用的旧MongoDB身份验证方案非常有用。有关详细信息,请参阅original pull request discussion。在

相关问题 更多 >