有人可以指导我解决此错误消息吗?

问题描述 投票:0回答:1
[0] Unhandled rejection MongoError: (Unauthorized) not authorized on admin to execute command { listIndexes: "sessions", cursor: {  } }

[0]     at MongoError.create (/Users/biggahd/Desktop/Mars-EMS-1/backend/node_modules/mongodb-core/lib/error.js:31:11)

[0]     at queryCallback (/Users/biggahd/Desktop/Mars-EMS-1/backend/node_modules/mongodb-core/lib/cursor.js:212:36)

[0]     at /Users/biggahd/Desktop/Mars-EMS-1/backend/node_modules/mongodb-core/lib/connection/pool.js:469:18

[0]     at process.processTicksAndRejections (node:internal/process/task_queues:77:11)

我已经在 MongoDB Atlas 上的自定义角色中启用了 listIndexes,我基本上已经批准了所有操作,但仍然收到此错误。

我使用的是最旧版本的 MongoDB。我被这样指示。 -> 2.0.14(也许这就是问题所在?

我正在使用 Sails.js 的 newset 版本 -> v1.5.7

有人可以指导我解决此错误消息吗?

javascript mongodb express sails.js mongodb-atlas
1个回答
0
投票

简短的回答 - 不要使用自动迁移。虽然很方便,但即使是 sails 本身也不推荐:

连接到包含您关心的数据的数据库时,切勿启用自动迁移。

考虑到您选择了自定义角色,开发便利性无论如何都不是首要任务。

答案很长。

Sails 尝试将您的模型与数据库同步。由于您在模型级别定义索引,因此它会尝试从数据库获取索引来计算增量并构建更新命令。

为什么它尝试在管理数据库上执行此操作 - 这是一个很大的谜团,这需要一些调试才能执行 RCA。可能存在一些配置错误,但我在静态代码分析的存储库中找不到任何明显的东西。

如果您使用免费/共享 Atlas 层(M0、M2、M5),则无论角色如何,您都无权访问管理数据库。

© www.soinside.com 2019 - 2024. All rights reserved.