如何查询在 $external 数据库中创建的用户

How can I query users created in $external database

我正在尝试配置基于证书的 mongo 身份验证,通常它工作正常,但有一个问题我找不到答案。假设我在 $external 数据库中创建了一个用户:

use $external
db.createUser({user: "emailAddress=jsmith@example.com,CN=jsmith,OU=Mongo Admins,O=Initech,C=US",
               roles: [{"role" : "root","db" : "admin"}]
})

问:如何查询$external数据库的内容,尤其是用户数据?

有没有类似的方法:

use admin
db.system.users.find()

“$external”数据库不是真正的数据库,它不包含任何数据。所有数据库的所有用户和角色数据都存储在 admin.system.usersadmin.system.roles.

首选解决方案是使用 getUsers command

在 shell 中,您将发出以下语句:

use $external
db.getUsers()

如果你有合适的权限,你也可以查询admin.system.users来找到任何数据库的用户,如下:

use admin
db.system.users.find({db: "$external"})