无法使用具有只读访问权限的 mongoengine 连接到 mongodb
Cannot connect to mongodb usign mongoengine with read(only) access
我在 linux 环境
上使用 mongo 引擎 运行 创建了工作 CLI 工具
MongoDB = 3.4.1
Python = 2.7.5
PyMongo = 3.4.0
MongoEngine = 0.11.0
我正在连接到数据库
.ini 文件中的信息如下所示:
[DATABASE]
uri=mongodb://%(user)s:%(password)s@%(host)s/%(dbname)s
dbname=myapp
user=
host=localhost
password=
在Python中:
DB_CONN = mongoengine.connect(conf['dbname'], host=conf['uri'])
数据库中当前有两个用户。具有读取角色的用户 usrRO
和具有读写角色的用户 usrRW。使用连接到数据库时
.ini 文件中的用户 usrRW 名称和密码一切正常。
但是连接用户 usrRO 凭据(用户 usrRO 可以从 mongo CLI 界面读取数据)导致:
pymongo.errors.OpeartionFailure: not authorized on myapp to execute command
{ createIndexes: <collection_name>,
indexes: [ { unique: true,
backgroung: false,
sparse: false,
key: { name: 1 },
name: "name_1" } ],
writeConcern: {} }
有没有办法使用用户 usrRO 凭据,或任何其他连接方式
使用 mongoengine ?
以只读权限访问数据库
我在 mongo-engine gitlab 问题中找到了答案。
只需添加
'auto_create_index': False
到您的对象元。这可能不适用于复杂的对象结构。
我在 linux 环境
上使用 mongo 引擎 运行 创建了工作 CLI 工具MongoDB = 3.4.1
Python = 2.7.5
PyMongo = 3.4.0
MongoEngine = 0.11.0
我正在连接到数据库 .ini 文件中的信息如下所示:
[DATABASE]
uri=mongodb://%(user)s:%(password)s@%(host)s/%(dbname)s
dbname=myapp
user=
host=localhost
password=
在Python中:
DB_CONN = mongoengine.connect(conf['dbname'], host=conf['uri'])
数据库中当前有两个用户。具有读取角色的用户 usrRO 和具有读写角色的用户 usrRW。使用连接到数据库时 .ini 文件中的用户 usrRW 名称和密码一切正常。 但是连接用户 usrRO 凭据(用户 usrRO 可以从 mongo CLI 界面读取数据)导致:
pymongo.errors.OpeartionFailure: not authorized on myapp to execute command
{ createIndexes: <collection_name>,
indexes: [ { unique: true,
backgroung: false,
sparse: false,
key: { name: 1 },
name: "name_1" } ],
writeConcern: {} }
有没有办法使用用户 usrRO 凭据,或任何其他连接方式 使用 mongoengine ?
以只读权限访问数据库我在 mongo-engine gitlab 问题中找到了答案。 只需添加
'auto_create_index': False
到您的对象元。这可能不适用于复杂的对象结构。