如何在Mongo shell中列出所有用户?

51
在MongoDB shell中,如何列出我正在使用的当前数据库的所有用户?
我在stackoverflow上无法找到它。
4个回答

89

你可以做:

db.getUsers()
或者
show users

这两个命令都会打印出当前数据库的用户列表。请参考MongoDB文档中的用户管理部分。


2
db.getUsers(); 2018-02-27T06:45:45.853+0500 E QUERY [thread1] Error: not authorized on test to execute command { usersInfo: 1.0 } : _getErrorWithCode@src/mongo/shell/utils.js:25:13 DB.prototype.getUsers@src/mongo/shell/db.js:1523:1 @(shell):1:1
show users; 2018-02-27T06:46:57.428+0500 E QUERY [thread1] Error: not authorized on test to execute command...
- flik
@flik 也许你需要重置你的mongodb用户。 - user8389458
1
我想在这里留下@flik的评论:“使用show roles;命令查看角色列表,然后从列表中添加角色即可解决问题。” - naXa stands with Ukraine
1
列出另一个数据库中的用户:db.getSiblingDB('admin').getUsers() - x-yuri

5

列出属于数据库用户的列表:

use db_namedb.getUsers()show users

根据认证类型列出列表:

db.getUsers({ filter: { mechanisms: "SCRAM-SHA-256" } })

凭证列表:

db.getUsers( {showCredentials: true,  filter: { mechanisms: "SCRAM-SHA-256" }} )

4

如果您只想列出用户名并保留其他批量信息,请尝试:

db.system.users.find({}, {"_id" : 1})

0
以下命令可用于获取选择的数据库中用户列表:

通过在选择的数据库上使用find

use admin;
db.system.users.find({}, {"user": 1, "db": 1, "roles": 1});

获取所有数据库中的所有用户

db.getUsers();

or 

show users; 

在响应JSON中,您只能获取用户、数据库和角色节点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接