gpt4 book ai didi

mongodb - 连接后 mongobee 在 Atlas 集群上读取 DBname.system.indexes 失败

转载 作者:可可西里 更新时间:2023-11-01 09:58:36 26 4
gpt4 key购买 nike

我有一个 Jhipster Spring 启动项目。最近我从 mlabs 独立沙箱转移到 Atlas 集群沙箱 M0 免费层副本集。它甚至可以工作,我已经对它进行了一些数据库操作。但是现在由于某种原因出现了读取权限错误

Error creating bean with name 'mongobee' defined in class path resource [DatabaseConfiguration.class]: Invocation of init method failed; nested exception is com.mongodb.MongoQueryException: Query failed with error code 8000 and error message 'user is not allowed to do action [find] on [test.system.indexes]' on server ********-shard-00-01-mfwhq.mongodb.net:27017

您可以在此处查看完整堆栈 https://pastebin.com/kaxcr7VS

我到处搜索,我所能找到的只是 M0 层用户没有覆盖管理数据库的权限,而我没有这样做。

即使现在连接到 Mlabs DB 也能正常工作,但在 Atlas DB M0 层上有这个问题。

Mongo 数据库版本:3.4

jar 和它的版本名称:'mongobee',版本:'0.10'名称:'mongo-java-driver',版本:'3.4.2'

@尼尔伦恩我用来连接的 userId 是管理员的,连接读写通过 shell 或 Robo3T(mongo 客户端)工作

最佳答案

在与 MongoDB 支持团队讨论后,MongoDB 3.0 反对直接访问 system.indexes集合,以前用于列出数据库中的所有索引。应用程序应使用 db.<COLLECTION>.getIndexes()相反。

来自 MongoDB Atlas docs可以看出,他们可能会禁止调用system.。集合:

Optionally, for the read and readWrite role, you can also specify a collection. If you do not specify a collection for read and readWrite, the role applies to all collections (excluding some system. collections) in the database.

从堆栈跟踪可以看出 MongoBee正在尝试进行此调用,所以现在是库问题,应该进行更新。

更新:为了解决问题,直到 MongoBee已发布新版本:

  1. 获取 MongoBee 的最新资源git clone git@github.com:mongobee/mongobee.git , cd mongobee
  2. 获取拉取请求 git fetch origin pull/87/head:mongobee-atlas
  3. 结帐 git checkout mongobee-atlas
  4. 安装 MongoBee jar mvn clean install
  5. /target获取编译好的jar文件夹或本地 /.m2
  6. 使用 jar 作为项目的依赖

关于mongodb - 连接后 mongobee 在 Atlas 集群上读取 DBname.system.indexes 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49974594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com