db.getUsers()
定义
db.getUsers(<options>)
返回数据库中所有用户的信息。
db.getUsers()
封装了usersInfo: 1
命令。db.getUsers()
方法可使用以下选项:db.getUsers( { showCredentials: <Boolean>, showCustomData: <Boolean>, filter: <document> } ) 字段类型说明showCredentials
布尔可选。设置为
true
,显示用户的密码哈希值。默认情况下,此字段为
false
。showCustomData
布尔可选。设置为
false
将省略输出中用户的customData
。默认情况下,此字段为
true
。5.2 版本中的新增功能。
filter
文档可选。指定$match
阶段条件的文档,用于为符合过滤条件的用户返回信息。有关更多信息,请参阅
usersInfo
。
必需的访问权限
要查看其他用户的信息,必须对其他用户的数据库执行 viewUser
操作。
用户可查看自己的信息。
示例
查看数据库中符合指定过滤器的所有用户
db.getUsers()
方法可以接受一个 filter
文档,以返回符合过滤条件的用户信息。
要查看当前数据库中拥有 SCRAM-SHA-256
档案的所有用户:
db.getUsers({ filter: { mechanisms: "SCRAM-SHA-256" } })
查看所有用户时,可以指定 showCredentials
选项,但不能指定 showPrivileges
或 showAuthenticationRestrictions
选项。
从输出中省略自定义数据
版本 5.2 中的新增功能:要省略 db.getUsers()
输出中用户的自定义数据,请将 showCustomData
选项设置为 false
。
使用 createUser
命令在 products
数据库上创建名为 accountAdmin01
的用户:
db.getSiblingDB("products").runCommand( { createUser: "accountAdmin01", pwd: passwordPrompt(), customData: { employeeId: 12345 }, roles: [ { role: 'readWrite', db: 'products' } ] } )
用户包含一个 customData
字段 { employeeId: 12345 }
。
要检索用户但从输出中省略自定义数据,请运行 db.getUsers()
并将 showCustomData
设置为 false
:
db.getSiblingDB("products").getUsers( { showCustomData: false } )
示例输出:
{ users: [ { _id: 'products.accountAdmin01', userId: UUID("0955afc1-303c-4683-a029-8e17dd5501f4"), user: 'accountAdmin01', db: 'products', roles: [ { role: 'readWrite', db: 'products' } ], mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ] } ], ok: 1 }