本文汇总了文档数据库 MongoDB 版账号和权限的常见问题。
文档数据库 MongoDB 版提供了如下角色和权限。关于各角色权限的更多详情,请参见数据库与账号权限。
权限类型 | 权限名称 | 权限说明 |
---|---|---|
管理员操作权限 | dbAdmin | 拥有对数据库对象执行管理操作的权限,但不具备对数据库执行读写操作的权限。 |
userAdmin | 在本库下创建用户的权限。 | |
dbOwner | 对本库执行所有操作的权限。 | |
集群操作权限 | clusterMonitor | 查询集群和复制集的权限。 |
普通操作权限 | read | 对本库执行查询操作的权限。 |
readWrite | 对本库执行增删改查等操作的权限。 | |
实例操作权限 | readAnyDatabase | 查询本实例所有库的权限。 |
readWriteAnyDatabase | 增删改查本实例所有库的权限。 | |
userAdminAnyDatabase | 在本实例所有库下创建用户的权限。 | |
dbAdminAnyDatabase | 本实例所有库的 dbAdmin 权限。 | |
备份操作权限 | backup | 对本实例所有库执行备份操作权限。 |
文档数据库 MongoDB 版实例创建成功后,系统会默认在 admin 数据库中创建一个 root 账号。
您可以在创建实例时直接设置 root 账号密码,也可以在实例创建后再修改 root 账号的密码或将账号重置为初始状态。具体操作步骤,请参见重置 root 账号。
文档数据库 MongoDB 版会默认在 admin 数据库中自动创建一个 root 账号,您也可以创建其他权限的账号进行分权分库操作。具体操作步骤,请参见创建账号。
使用文档数据库 MongoDB 版前,需要先进行跨服务访问授权以允许 MongoDB 访问其他服务(如 VPC、EIP 等)。跨服务访问授权的详细操作步骤,请参见跨服务访问授权。
如果您需要使用子用户进行跨服务授权,子用户需拥有 IAMFullAccess
权限,否则授权时会报错。为子用户授权的具体步骤,请参见管理用户。
您可以选择如下任意方法修改数据库账号密码:
通过 MongoDB 控制台修改
通过 MongoDB 控制台修改账号密码的详细操作步骤,请参见修改账号密码或重置 root 账号。
通过 API 修改
您可以调用 ResetDBAccount 接口修改目标 MongoDB 实例中指定账号的密码。
通过 db.changeUserPassword()
命令修改
您可以使用 db.changeUserPassword()
命令来修改指定账号(包括 root 账号和自建账号)的密码。具体使用方法,请参见 db.changeUserPassword()。
文档数据库 MongoDB 版支持在数据库账号的密码中使用 _#!@$%^&*()+=-
特殊字符,当您通过 MongoDB Shell 工具或程序代码连接 MongoDB 实例时,部分特殊字符会引起程序歧义无法被正确识别,从而导致连接失败。您需要将这些字符转义为对应的 URL 编码后,再用于连接串中才能在被正确识别。
当前需要在连接串中进行转义的特殊字符,及其对应的 URL 编码如下表所示:
特殊字符 | 转义后对应的 URL 编码 |
---|---|
! | %21 |
# | %23 |
$ | %24 |
% | %25 |
@ | %40 |