我正在尝试配置基于证书的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()
答案 0 :(得分:7)
" $ external"数据库不是真正的数据库,它不包含任何数据。所有数据库的所有用户和角色数据都存储在admin.system.users
或admin.system.roles
。
首选解决方案是使用getUsers command。
在shell中,您将发出以下声明:
use $external
db.getUsers()
如果您拥有正确的权限,还可以查询admin.system.users
以查找任何数据库的用户,如下所示:
use admin
db.system.users.find({db: "$external"})