一、操作场景
·应用接入:为新上线的业务系统创建独立账号,按"最小权限原则"仅授予其访问目标数据库或集合的权限,降低应用层故障扩散到整个实例的风险。
·多角色协作:为开发、运维、数据分析等不同岗位创建账号,分别授予对应的数据库角色(如 read、readWrite、dbAdmin),实现职责分离和操作审计。
·库表级精细授权:当业务对单个集合(Collection)有独立的读写隔离需求时,通过引用自定义角色,实现指定集合的精细权限控制。
·快速复用授权:为新成员创建与已有账号权限相同的账号时,可在已有账号的基础上调整角色,避免重复配置,提升运维效率。
二、功能说明
创建账号支持账号信息配置和权限设置两个步骤,权限设置提供两种模式:
·快速配置:基于"全局权限 + 单库权限"的二级模型授予 read、readWrite 等通用角色,适用于一次性授予全库或单库读写的常规场景。
·自定义配置:基于 MongoDB RBAC 模型授予角色,支持选择数据库角色、全局角色或自定义角色,并精确指定到数据库和集合级别,适用于库表级精细授权场景。
三、使用须知
注意:说明:
四、前提条件
云数据库 MongoDB 副本集实例或分片实例的状态为运行中。
五、步骤一:进入创建账号入口
1. 登录 MongoDB 控制台。
2. 在左侧导航栏 MongoDB 的下拉列表中,选择副本集实例或者分片实例。副本集实例与分片实例操作类似。
3. 在右侧实例列表页面上方,选择地域。
4. 在实例列表中,找到目标实例。
5. 单击目标实例 ID,进入实例详情页面。
6. 选择数据库管理页签,在账号管理页面,单击创建账号。
六、步骤二:填写账号信息
在创建账号小窗口,根据下表配置账号基础信息。
| 参数名称 | 是否必选 | 参数说明 | 取值规则与示例 |
| 账号名称 | 是 | 设置新账号的名称。 | 字符长度为1 – 32;仅支持字母(A – Z、a – z)、数字(0 – 9)、下划线(_)、短划线(-)。例如 app_order。 |
| 启用 CAM 验证 | 否 | 将账号与腾讯云访问管理(CAM)绑定,使用动态生成的安全凭证替代静态密码。详情请参见 开启 CAM 验证。 | 默认关闭。说明:启用 CAM 验证后,该账号不再支持修改密码,只能通过 CAM 接口动态获取访问令牌。建议仅对临时访问、合规审计等需要动态凭证的场景启用。 |
| 账号密码 | 是 | 设置新账号的登录密码。 | 字符长度为8 – 32;至少包含字母、数字、特殊字符中的两种;允许的特殊字符为 ! @ # % ^ * ( ) _。例如 Test@123。 |
| 确认密码 | 是 | 再次输入新账号的密码,需与上方一致。 | 同上。 |
| 备注 | 是 | 用于说明账号用途,便于后续运维识别。 | 任意字符,建议填写账号所属业务或负责人。例如订单服务读写账号。 |
七、步骤三:选择权限设置模式
完成账号信息填写后,单击下一步,进入设置权限页面。系统提供快速配置和自定义配置两种模式,默认选中快速配置。
| 模式 | 适用场景 | 能力范围 |
| 快速配置 | 一次性授予全库或单库读写权限的常规场景。 | 配置全局权限(无权 / 只读 / 读写)和指定数据库权限(继承全局 / 无权 / 只读 / 读写)。 |
| 自定义配置 | 需要按角色类别授权、精确到集合级别的库表级精细授权场景。 | 选择数据库角色、全局角色或自定义角色,并指定到数据库和集合粒度,支持一次添加多条授权。 |
注意:两种模式之间的切换规则如下:
八、步骤四:使用快速配置授予权限(场景 A)
1. 在全局权限区域,从下拉列表中选择该账号对所有数据库的默认权限。
| 选项 | 含义 |
| 无权 | 对所有数据库均无读写权限。 |
| 只读 | 对所有数据库均具有读权限,等同于绑定 readAnyDatabase 角色。 |
| 读写 | 对所有数据库均具有读写权限,等同于绑定 readWriteAnyDatabase 角色。 |
2. 在实例详情区域,对单个数据库的权限进行细化。
| 选项 | 含义 |
| 继承全局 | 沿用全局权限的设置。 |
| 无权 | 对该数据库无读写权限。 |
| 只读 | 对该数据库具有读权限,等同于在该库绑定 read 角色。 |
| 读写 | 对该数据库具有读写权限,等同于在该库绑定 readWrite 角色。 |
3. (可选)单击创建新库,可在数据库列表中新增一条记录。在输入框中输入数据库名,单击确定保存后,再设置该数据库的访问权限。
注意:说明:
注意:此处的"创建新库"仅在控制台预设该数据库的访问权限,并不会立即在 MongoDB 中创建物理数据库。物理数据库会在首次写入数据时由 MongoDB 自动创建。
4. 单击确定,完成创建。等待2分钟系统配置生效后,即可使用该账号访问数据库。
九、步骤五:使用自定义配置授予权限(场景 B)
适用于"按角色类别授权、精确到集合级别"的库表级精细授权场景。在设置权限页面切换到自定义配置页签,按以下流程添加授权。
1. 在角色配置的下拉列表,选择角色类型及角色,以及授权的数据库。
·每条授权记录只能选择一个角色类别下的一个或多个角色。
·单击添加一条,新增一条授权记录。给每条记录进行角色配置。
| 角色类别 | 选择角色与操作(可多选) | 选择 Database | 选择 Collection |
| 数据库角色 | read、readWrite、dbOwner、userAdmin、dbAdmin、enableSharding | 支持单选、多选、全选 | 置灰,不可选 |
| 全局角色 | readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase、clusterManager、clusterAdmin、clusterMonitor、hostManager、enableSharding、backup、restore 等 | 置灰,不可选 | 置灰,不可选 |
| 自定义角色 | 选择在角色管理中创建的自定义角色 | 置灰,不可选 | 置灰,不可选 |
注意:说明:
2. 单击预览,可在权限变更预览窗口查看本次授权将生成的命令行。
注意:说明:
注意:权限预览将列出系统即将下发到 MongoDB 的 db.grantRolesToUser、db.createUser 等命令,便于在创建前核对授权范围。该预览仅用于展示,不会立即执行。
3. 检查无误后,单击确定完成创建。等待2分钟系统配置生效后,即可使用该账号访问数据库。
注意:选择全局角色时请评估业务影响,root、__system 等高权限角色可对实例进行任意操作,仅建议在运维或迁移等特定场景下短期授予,不建议长期分配给业务账号。
十、相关 API
| API 接口名称 | 描述 |
| CreateAccountUser | 创建账号 |
| DescribeAccountUsers | 查询当前实例的全部账号 |
| SetAccountUserPrivilege | 设置实例的账号权限 |
| ResetDBInstancePassword | 修改账号密码 |