MongoDB Atlas:不允许用户在system.indexes上执行操作查找



我正在使用MongoDB Atlas,最近我开始在我的MongoDB副本上收到此错误:

不允许用户对 [mydb.system.indexes] 执行操作 [find]

实际上什么都没有改变,所以我想知道什么可能是一个问题。用户在mydb上具有readWrite角色,从文档中看,它应该有权执行此操作。另外,我尝试将用户更改为具有任何权限的管理员用户,但仍然收到此错误。有趣的是,mydb中不存在system集合,但 Spring Data 尝试查询它并收到此错误。

这是来自 mongo 的完整日志:

Error: error: {
    "ok" : 0,
    "errmsg" : "user is not allowed to do action [find] on [mydb.system.indexes]",
    "code" : 8000,
    "codeName" : "AtlasError"
}

MongoDB连接URI看起来像这样:

spring.data.mongodb.uri=mongodb+srv://[USER]:[PASSWORD]@[MONGO_URL].mongodb.net/mydb

我正在使用带有版本 3.6.3 的 mongo java 驱动程序的 Spring Boot 2.0.1.RELEASE。Mongo副本的版本是3.4.14 。知道发生了什么以及如何解决这个问题吗?升级用户角色在这里无济于事。

MongoDB Atlas禁止直接调用某些system.集合,并指定在文档中应该使用db.<COLLECTION>.getIndexes()。就我而言,MongoBee库正在拨打system.indexes电话并导致问题。有关更多详细信息,请参阅我的答案 这里.

相关内容

最新更新