createRole¶创建一个角色并指定其特权。该角色适用于您在其上运行命令的数据库。如果角色已经存在于数据库中,则该createRole
命令返回重复的角色错误。
该createRole命令使用以下语法:
该createRole命令具有以下字段:
| 领域 | 类型 | 描述 |
|---|---|---|
createRole |
串 | 新角色的名称。 |
privileges |
数组 | 授予角色的特权。特权由资源和允许的操作组成。有关特权的语法,请参见
您必须包括该 |
roles |
数组 | 角色的数组,此角色从中继承特权。 您必须包括该 |
authenticationRestrictions |
数组 | 可选的。 服务器对角色强制执行的身份验证限制。指定允许授予该角色的用户连接和/或可以从其连接的IP地址和CIDR范围的列表 。 3.6版的新功能。 |
writeConcern |
文献 | 可选的。适用于此操作的写关注级别。该writeConcern文档使用与getLastError命令相同的字段。 |
3.6版的新功能。
该authenticationRestrictions文件可以包含只以下字段。如果authenticationRestrictions文档包含无法识别的字段,服务器将引发错误
:
| 栏位名称 | 值 | 描述 |
|---|---|---|
clientSource |
IP地址和/或CIDR范围的数组 | 如果存在,则在验证用户身份时,服务器将验证客户端的IP地址是否在给定列表中或属于列表中的CIDR范围。如果客户端的IP地址不存在,则服务器不会对用户进行身份验证。 |
serverAddress |
IP地址和/或CIDR范围的数组 | 客户端可以连接的IP地址或CIDR范围的列表。如果存在,服务器将通过给定列表中的IP地址验证是否接受了客户端的连接。如果通过无法识别的IP地址接受了连接,则服务器不会对用户进行身份验证。 |
重要
如果用户继承具有不兼容身份验证限制的多个角色,则该用户将变得无法使用。
例如,如果用户将继承一个角色,其中
clientSource场["198.51.100.0"]和另一个角色中的clientSource字段是["203.0.113.0"]服务器无法对用户进行认证。
有关MongoDB中身份验证的更多信息,请参阅 Authentication。
要在数据库中创建角色,您必须具有:
createRole grantRole 内置角色userAdmin并
在其各自的资源上userAdminAnyDatabase提供createRole和
grantRole采取行动。
要创建具有authenticationRestrictions指定角色的角色,必须对创建角色的
数据库资源执行操作。setAuthenticationRestriction
以下createRole命令myClusterwideAdmin在admin数据库上创建
角色: