如何查询在$ external database中创建的用户

时间:2017-08-09 14:34:00

标签: mongodb mongodb-query x509

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

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()

1 个答案:

答案 0 :(得分:7)

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

首选解决方案是使用getUsers command

在shell中,您将发出以下声明:

use $external
db.getUsers()

如果您拥有正确的权限,还可以查询admin.system.users以查找任何数据库的用户,如下所示:

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