创建并管理角色
创建角色
db.createRole(role, writeConcern)
- 参数role为必选参数,类型为文档,详情如下:
{ role: "<name>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], roles: [ { role: "<role>", db: "<database>" } | "<role>", ... ], authenticationRestrictions: [ { clientSource: ["<IP>" | "<CIDR range>", ...], serverAddress: ["<IP>" | "<CIDR range>", ...] }, ... ] }
各参数及含义如下:
字段
类型
说明
role
string
角色名称
privileges
数组
必选参数,数组元素为角色具备的权限。
该参数设置为空集合意味着该角色无任何权限。
resource
文档
用于指定库名或者集合名
actions
数组
对应资源可用的操作列表, 常用action如下:
- find
- count
- getMore
- listDatabases
- listCollections
- listIndexes
- insert
- update
- remove
更多actions请参见官方文档。
roles
数组
必选参数,数组元素为角色继承的角色名。
可以是系统预置的角色read或者readWrite,也可以是用户自定义的角色。
authenticationRestrictions
数组
可选。用于指定该角色可接入的IP地址或者IP地址段。
- writeConcern可选参数用来指定命令的write concern的等级。
更新角色
db.grantPrivilegesToRole(rolename,privileges,writeConcern)
db.revokePrivilegesFromRole(rolename,privileges,writeConcern)
上述命令用户给角色获取或者回收指定的权限。
- 参数rolename为必选参数,用于指定待更新的角色名称。
- 参数privileges为角色待调整的权限。
db.grantPrivilegesToRole( "< rolename >", [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], { < writeConcern > } )
表1 privileges各字段含义 字段
类型
说明
resource
文档
用于指定库名或者集合名
actions
数组
参考createRole章节的说明。
除了上述命令,还支持updateRole对角色信息整体更新。
db.updateRole(role, update, writeConcern)
字段 |
类型 |
说明 |
---|---|---|
role |
string |
角色名称 |
update |
数组 |
必选参数,与创建角色命令的privileges参与含义一致。用于整体替换对应角色的全部权限信息。 |
writeConcern |
文档 |
可选参数用来指定命令的write concern 的等级 |
删除角色
db.dropRole(rolename, writeConcern)
- 参数rolename为必选参数,待删除的角色名称。
- writeConcern可选参数用来指定命令的write concern的等级。