MongoDB Compass 社区:数据库可见,但身份验证后不显示其集合

Yas*_*ldi 5 mongodb mongodb-compass

我在 mongoshell 中使用以下命令创建了默认管理员用户:

use admin
db.createUser(
  {
    user: "root",
    pwd: "root",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
Run Code Online (Sandbox Code Playgroud)

然后我使用 shell 和我的凭据进行身份验证,如下所示: mongo --port 27017 -u "root" -p "root" --authenticationDatabase "admin"

在 shell 中,我可以使用以下命令查看usersversion集合:

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB
> use admin
switched to db admin
> show tables
system.users
system.version
>
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试从 MongoDB Compass 社区访问这些表时,我首先进行身份验证: 在此输入图像描述

现在管理数据库显示为空?

在此输入图像描述

如何像从 shell 中一样从图形界面访问用户集合和其他集合?

小智 3

无法看到用户集合和其他集合的原因是 userAdminAnyDatabase 内置角色。默认情况下,它不需要读取这些集合的必要权限。根据您的需要尝试 root 或 dbAdminAnyDatabase。

干杯,

资源: https://docs.mongodb.com/manual/reference/built-in-roles/