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
数据库上创建
角色: