一、操作场景
·日常运维与管理
·作为数据库管理员,需要定期查看账号列表以掌握整体的账号概况,包括存在哪些账号、其授权数据库及权限范围。
·当需要进行权限风险排查时,查看账号列表可以快速审视所有账号的权限分配、角色绑定情况,可快速发现是否存在过度授权、闲置账号或未授权的可疑账号,从而及时清理冗余身份,有效加固数据库安全防线。
·一站式账号生命周期管理
账号列表界面集成了账号创建、数据库创建、权限设置、连接 URI 获取及密码修改等全套操作,实现了从账号初始化到权限配置、再到访问凭证分发的全流程一站式管理,极大提升了运维效率与管理体验。
二、功能描述
账号列表页面集成了账号生命周期管理的核心能力:
| 功能项 | 具体描述 |
| 账号列表 | 集中展示当前实例的所有账号及其基础信息,包括账号名、备注、密码更新时间、CAM 验证状态等。 |
| 创建账号 | 在当前实例中创建新账号并设置权限。详情请参见 创建账号。 |
| 复制账号 | 基于已有账号的角色快速创建一个权限相同的新账号。 |
| 查看/设置权限 | 查看指定账号已绑定的角色,并可按快速配置或自定义配置两种模式调整权限。 |
| 修改密码 | 变更账号的登录密码以加强访问安全。 |
| 连接 URI | 获取指定账号用于连接数据库的标准格式字符串。 |
| 开启 / 关闭 CAM 验证 | 将账号与腾讯云访问管理(CAM)绑定,使用动态生成的安全凭证替代静态密码。详情请参见 开启 CAM 验证。 |
| 创建新库 | 在当前实例中创建一个新的逻辑数据库。 |
| 删除账号 | 清理不再使用的账号。 |
三、账号来源与展示规则
账号列表会自动合并展示控制台和 MongoDB 内核中的账号,统一作为唯一数据源管理。不同来源的账号展示规则如下。
注意:说明:
注意:自 MongoDB 3.6版本起,新实例将默认创建名为 mongouser 的用户。该账号及后续在控制台创建的所有账号,均统一使用 SCRAM-SHA-1 认证机制进行身份验证。
| 账号来源 | 说明 |
| 控制台创建的账号 | 默认存储在 admin 库,可执行全部账号管理操作。 |
| 通过 mongo shell 或驱动在 admin 库创建的账号 | 与控制台创建的账号合并展示,连接 URI 自动指向 admin 库。 |
| 通过 mongo shell 或驱动在非 admin 库创建的账号 | 列表中展示账号所属的认证库,连接 URI 中的 authSource 自动指向账号所在数据库。 |
| 默认账号 mongouser | 仅支持查看权限、修改密码、开启 CAM、获取连接 URI;不支持修改权限和删除。 |
四、步骤一:进入账号管理页面
1. 登录 MongoDB 控制台。
2. 在左侧导航栏 MongoDB 的下拉列表中,选择副本集实例或者分片实例。副本集实例与分片实例操作类似。
3. 在右侧实例列表页面上方,选择地域。
4. 在实例列表中,找到目标实例。
5. 单击目标实例 ID,进入实例详情页面。
6. 选择数据库管理页签,进入账号管理页面。你可以查看当前数据库所有账号信息。
| 字段名称 | 字段说明 |
| 账号名 | 账号的唯一标识,对应 MongoDB 内核中的 user 名称。 |
| 认证方式 | 账号采用的加密认证算法。控制台创建的账号默认支持 SCRAM-SHA-1 和 SCRAM-SHA-256 认证。 |
| 所属数据库 | 账号所属的数据库命名空间(对应 MongoDB 内核中的 db 字段)。控制台创建的账号通常归属于 admin 数据库。 |
| 创建时间 | 账号首次在平台中创建成功的时间。 |
| 更新时间 | 账号属性(如权限、密码、备注等)最近一次发生变更的时间。 |
| 轮转周期(天) | 账号密码自动更换的时间间隔(单位:天)。系统将按周期自动生成并启用新密码以提升安全性;显示为“–”表示未开启自动轮转。 |
| 备注 | 账号创建时填写的说明信息,用于标识账号用途或负责人。 |
| 操作 | 针对当前账号可执行的管理动作,包括连接 URI、查看/设置、修改密码、开启/关闭 CAM 验证、复制账号、删除等。 |
五、步骤二:查看或设置账号权限
确定需查看的账号,单击其操作列的查看/设置,可在设置权限窗口。页面默认根据账号当前的权限设置与角色进行展示。
注意:说明:
六、模式 A:快速配置调整权限
查看或修改该账号的权限及其在各数据库的访问权限。调整完成后单击确定保存。
·在全局权限区域,从下拉列表中调整该账号对所有数据库的默认权限:无权 / 只读 / 读写。
·在实例详情区域,对单个数据库的权限进行细化,可选继承全局 / 无权 / 只读 / 读写。
·单击创建新库,可在数据库列表中预设新数据库的授权记录。
七、模式 B:自定义配置调整权限
适用于库表级精细授权场景,或账号原本绑定的就是数据库角色组合、全局角色、自定义角色。调整完成后单击确定保存。
·在角色配置,直接调整某条记录的角色类别(数据库角色 / 全局角色 / 自定义角色)、所选角色或数据库范围。
·单击添加一条,新增一条授权记录,实现多角色、多类别叠加授权。
·单击删除,可移除某条不再需要的授权记录。
·单击预览,查看本次调整将生成的命令行预览。
八、步骤三:复制账号
复制账号用于基于已有账号的角色快速创建一个权限相同的新账号,新账号仅需重新设置账号名称、密码和备注。
1. 在目标账号所在行,单击操作列的复制账号。
2. 在弹出的复制账号窗口,确认原账号名称,并填写新账号的账号名、密码、确认密码、备注。
3. 单击下一步,进入设置权限页面。系统默认勾选原账号已配置的全部角色。
4. (可选)在原账号权限基础上调整角色或权限范围。
5. 单击确定完成创建。等待2分钟系统配置生效后,即可使用新账号访问数据库。
九、步骤四:修改密码
1. 在目标账号所在行,单击其操作列的修改密码。
2. 在修改密码窗口,输入新密码并确认。密码复杂度要求以界面提示为准。
·密码长度不能少于8位
·密码长度不能大于32位
·至少包含字母、数字和字符(!@#%^*()_)中的两种
3. 单击确定完成修改。
十、步骤五:获取账号连接串
1. 在目标账号所在行,单击其操作列的连接 URI,
2. 在连接帮助窗口,复制该账号连接数据库实例的标准连接串。
注意:说明:
注意:非 admin 库的账号,连接串中的 authSource 参数会自动指向账号所在数据库,请勿手动改写,否则会导致认证失败。
十一、步骤六:开启或关闭 CAM 验证
在目标账号所在行,单击其操作列的开启 CAM 验证,使用动态生成的安全令牌进行身份认证。具体操作与使用,请参见 开启 CAM 验证。
十二、步骤七:删除账号
在目标账号所在行,单击其操作列的删除,在删除用户的小窗口,确认删除该账号,单击确定,清理该账号。
注意:账号删除后无法恢复,且绑定该账号的应用将立即失去访问权限。删除前请确认该账号已不再被任何业务使用。系统默认账号 mongouser 和腾讯云内置的系统账号不支持删除。
十三、相关 API
| 接口名称 | 功能描述 |
| CreateAccountUser | 自定义实例访问账号 |
| DescribeAccountUsers | 获取当前实例的全部账号。 |
| ResetDBInstancePassword | 修改实例用户的密码。 |
| SetAccountUserPrivilege | 设置实例的账号权限。 |
| DeleteAccountUser | 删除账号 |
十四、通过 mongo shell 创建的账号为什么也能在控制台看到?
控制台与 MongoDB 内核中的账号数据是合并展示的,无论账号是通过控制台创建还是通过 mongo shell、驱动直接在内核中创建,都会出现在账号列表中,由控制台统一管理。腾讯云内置的系统账号(如 cmgo-xxxxxxxx 格式)出于实例稳定性考虑不展示。
十五、非 admin 库创建的账号在哪里查看?
非 admin 库的账号同样展示在账号列表中,"认证库"字段会显示该账号实际所在的数据库。在获取连接 URI 时,连接串中的 authSource 参数会自动指向账号所在数据库,无需手动修改。
十六、删除账号会同时清理它在非 admin 库的认证记录吗?
会。删除账号时,系统会同步清理该账号在 MongoDB 内核中的认证记录,包括账号所在库的 user 元信息。删除后该账号无法用于任何数据库的认证,请谨慎操作。
十七、mongouser 账号能否删除?
不能。mongouser 是 MongoDB 实例的系统默认账号,仅支持查看权限、修改密码和开启 CAM 验证,不支持修改权限和删除。如果不希望使用该账号,可通过修改密码确保其不被外部使用。