system.users Collection
在 2.6 版中进行了更改。
在本页面
admin
数据库中的system.users
集合存储用户authentication和authorization信息。要 Management 此集合中的数据,MongoDB 提供了用户 Management 命令。
system.users Schema
system.users
集合中的文档具有以下架构:
{
_id: <system defined id>,
userId : <system assigned UUID>, // Starting in MongoDB 3.6.13
user: "<name>",
db: "<database>",
credentials: { <authentication credentials> },
roles: [
{ role: "<role name>", db: "<database>" },
...
],
customData: <custom information>,
}
每个system.users
文档都有以下字段:
admin.system.users.
userId
- 创建时分配给用户的用户唯一标识符。
userId适用于 MongoDB 3.6.13 中的用户(未通过 LDAPManagement)created。
版本 3.6.13 中的新功能。
-
admin.system.users.
user
- 用户名。用户位于单个逻辑数据库(请参见admin.system.users.db)的上下文中,但可以通过roles数组中指定的角色访问其他数据库。
-
admin.system.users.
db
- 与用户关联的authentication database。用户的权限不一定限于此数据库。用户可以通过roles数组在其他数据库中拥有特权。
-
admin.system.users.
credentials
- 用户的身份验证信息。对于具有外部存储的身份验证凭据的用户,例如使用Kerberos或 x.509 证书进行身份验证的用户,该用户的
system.users
文档不包含credentials字段。
- 用户的身份验证信息。对于具有外部存储的身份验证凭据的用户,例如使用Kerberos或 x.509 证书进行身份验证的用户,该用户的
-
admin.system.users.
roles
- 授予用户的一组角色。该数组包含built-in roles和user-defined role。
角色文档具有以下语法:
{ role: "<role name>", db: "<database>" }
角色文档具有以下字段:
-
admin.system.users.roles[n].
role
- 角色名称。角色可以是 MongoDB 提供的built-in role或自定义用户定义角色。
-
admin.system.users.roles[n].
db
- 定义角色的数据库的名称。
使用role management或user management命令指定角色时,如果运行该命令的数据库中存在该角色,则可以仅指定角色名称(例如"readWrite"
)。
admin.system.users.
customData
- 有关用户的可选自定义信息。
Example
在 3.0.0 版中更改。
考虑system.users
集合中的以下文档:
{
_id : "home.Kari",
"userId" : UUID("ec1eced7-055a-4ca8-8737-60dd02c52793"), // Available starting in MongoDB 3.6.13
user : "Kari",
db : "home",
credentials : {
"SCRAM-SHA-1" : {
"iterationCount" : 10000,
"salt" : nkHYXEZTTYmn+hrY994y1Q==",
"storedKey" : "wxWGN3ElQ25WbPjACeXdUmN4nNo=",
"serverKey" : "h7vBq5tACT/BtrIElY2QTm+pQzM="
}
},
roles : [
{ role: "read", db: "home" },
{ role: "readWrite", db: "test" },
{ role: "appUser", db: "myApp" }
],
customData : { zipCode: "64157" }
}
该文档显示用户Kari
与home
数据库相关联。 Kari
在home
数据库中具有read角色,在test
数据库中具有readWrite角色,在myApp
数据库中具有appUser
角色。