使用 MongoDB 指南针连接

Connecting using MongoDB Compass

我正在尝试使用 MongoDB Compass 查看集合的内容。我设置了 username/password 身份验证。我可以成功登录,但看不到集合中的任何文档。相反,我看到错误:

An error occurred while loading navigation: command hostInfo requires authentication.

以下是用户拥有的角色列表:

"roles": [{
    "role": "readWrite",
    "db": "moviesDB"
  },
  {
    "role": "dbAdmin",
    "db": "moviesDB"
  },
  {
    "role": "dbOwner",
    "db": "moviesDB"
  },
  {
    "role": "clusterMonitor",
    "db": "admin"
  },
  {
    "role": "dbAdmin",
    "db": "moviesDB"
  }
]

我可以使用 mongo shell 和 node.js 驱动程序成功查询集合,但不能通过 Compass。如果有人能告诉我我做错了什么,我将不胜感激。提前致谢!

我也遇到了同样的问题。它帮助了我:-

方式一:- 命令-1:

use admin
db.createUser({
user: "newUsername",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})

cmd-2:

db.grantRolesToUser('newUsername',[{ role: "root", db: "admin" }])

方式二:- 尝试从进程中杀死 MongoDBCompassCommunity.exe,然后再次重新启动指南针并尝试使用凭据登录。

如果这对您也有帮助,请告诉我。

终止 mongodb 指南针进程 运行,然后重新启动指南针。

https://docs.mongodb.com/compass/current/connect/required-access/

我给了 readWriteAnydatabass 和 clustermonitor 然后它起作用了

查看以上文章以查看 MongoCompass 所需的权限

要通过罗盘提供对 mongoDB 的访问权限以获得对 read/write 操作的最小权限,请将角色“clustermonitor”附加到用户,因为这是加载 initial/home 屏幕所必需的查询所有数据库的状态。