管理角色 本页介绍了文档数据库服务管理角色相关操作。 创建 创建自定义角色需要使用 createRole 命令或 db.createRole() 方法,并指定角色的名称、权限和其他属性。下面是创建角色的模板: db.createRole(role, writeConcern)。 参数role为必选参数,类型为文档;参数writeConcern :用来指定命令的write concern的等级 。 db.createRole( { role: " ", privileges: [ { resource: { }, actions: [ " ", ... ] }, ... ], roles: [ { role: " ", db: " " } " ", ... ], authenticationRestrictions: [ { clientSource: [" " " ", ...], serverAddress: [" " " ", ...] }, ... ] } ) 参数说明: 字段 类型 说明 role string 角色名称。 privileges 数组 必选参数,数组元素表示角色所具备的权限。如果该参数设置为空集合,表示该角色没有任何权限。 resource 文档 该参数用于指定数据库名称或集合名称。 actions 数组 该参数对应的是资源可用的操作列表,其中常见的操作包括find、count、getMore、listDatabases、listCollections、listIndexes、insert、update、remove等。 roles 数组 必选参数,数组元素用于指定角色继承的角色名。这可以是系统预设的角色,例如read或readWrite,也可以是用户自定义的角色。 authenticationRestrictions 数组 该参数用于指定角色可以接受的IP地址或IP地址范围。 更新 在文档数据库服务中,可以使用 updateRole 命令或 db.updateRole() 方法来更新自定义角色的内容。更新自定义角色通常包括以下两个步骤: 1. 获取要更新的自定义角色的当前配置信息。 可以使用 db.getRole() 命令或 db.runCommand({ getRole: "", rolesInfo: 1 }) 方法来获取要更新的自定义角色的当前配置信息。例如,下面的命令获取名为 myrole 的自定义角色的当前配置信息: db.runCommand({ getRole: "myrole", rolesInfo: 1 }) 2. 更新自定义角色的配置信息。 可以使用 updateRole 命令或 db.updateRole() 方法来更新自定义角色的配置信息。例如,下面的命令将名为 myrole 的自定义角色的权限更新为 read 权限: db.updateRole("myrole", { privileges: [{ actions: ["read"], resource: { db: "", collection: "" } }] }) 需要留意的是,更新自定义角色的配置信息需要谨慎操作,因为错误的操作可能会导致数据库的安全性问题。因此,在更新自定义角色之前,建议先备份数据库,并在测试环境中测试更新操作的效果。