10

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

加载导航时出错:命令 hostInfo 需要身份验证。

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

"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。如果有人能告诉我我做错了什么,我将不胜感激。提前致谢!

4

4 回答 4

18

杀死正在运行的 mongodb compass 进程,然后重新启动 compass。

于 2018-11-20T19:30:12.647 回答
7

我也陷入了同样的问题。它帮助了我:-

方式一:- cmd-1:</p>

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

命令-2:

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

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

让我知道这是否也对您有所帮助。

于 2018-09-17T10:28:29.413 回答
0

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

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

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

于 2021-08-27T16:57:44.150 回答
0

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

于 2021-11-22T08:25:58.973 回答