4

我正在使用 MongoDB Atlas,最近我的 MongoDB 副本开始出现此错误:

不允许用户在 [mydb.system.indexes] 上执行操作 [查找]

什么都没有真正改变,所以我想知道可能是什么问题。用户在文档readWrite中具有角色,mydb并且看起来它应该有权这样做。另外,我尝试将用户更改为具有任何权限的管理员用户,但仍然出现此错误。有趣的是,该集合不存在,但 Spring Data 尝试查询它并收到此错误。systemmydb

这是来自 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

我正在使用 Spring Boot2.0.1.RELEASE和版本的 mongo java 驱动程序3.6.3。Mongo 副本的版本是3.4.14. 知道发生了什么以及如何解决这个问题吗?升级用户角色在这里没有帮助。

4

1 回答 1

8

MongoDB Atlas 禁止直接调用某些system.集合,它们在doc中指定并db.<COLLECTION>.getIndexes()应改为使用。就我而言,MongoBee图书馆正在system.indexes打电话并导致问题。有关更多详细信息,请参阅我的答案。

于 2018-04-23T09:07:15.093 回答