前提条件
说明账号类型
RDS MySQL或RDS MySQL Serverless实例支持两种数据库账号:高权限账号和普通账号。您可以在控制台管理所有账号和数据库,账号拥有的具体权限请参见账号权限列表。
说明账号创建后,账号类型无法切换,您可以删除账号后重新创建同名账号。
账号类型 | 说明 |
高权限账号 |
|
普通账号 |
|
账号类型 | 建库数量 | 建表数量 |
高权限账号 | 不限 | <20万 |
普通权限账号 | 500 | <20万 |
针对建库数量,底层文件系统可能对目录数量有限制。
创建高权限账号
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏单击账号管理。
单击创建账号。
设置以下参数。
参数
说明
数据库账号
填写账号名称。要求如下:
账号类型
此处选择高权限账号。
新密码
设置账号密码。要求如下:
说明确认密码
再次输入密码。
备注
备注该账号的相关信息,便于后续账号管理。最多支持256个字符。字符中不能包含
http://或https://。请妥善保存密码。如果后续在登录数据库时忘记密码,可重置密码。
RDS MySQL 5.7、8.0、8.4版本实例支持自定义数据库账号密码策略,以增强数据库访问的安全性。
长度为8~32个字符。
由大写字母、小写字母、数字、特殊字符中的三种及以上类型组成。
特殊字符为
!@#$%^&*()_+-=。MySQL 5.6支持账号长度为2~16个字符,MySQL 8.4、8.0和5.7支持账号长度为2~32个字符。
由字母、数字或下划线组成。
以字母开头,以字母或数字结尾。
不能和已有的账号名重复。
普通账号名与高权限账号名不能互相类似,例如:高权限账号名
Test1,普通账号名不能为test1等。不能包含保留关键字。
单击确定。
重置账号权限
如果高权限账号自身出现问题,例如权限被意外回收(REVOKE ),您可以通过重置账号权限的方法恢复。
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏单击账号管理。
单击高权限账号右侧的重置账号权限。
输入高权限账号密码,单击确定重置账号权限。
创建普通账号
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏单击账号管理。
单击创建账号。
设置以下参数。
参数
说明
数据库账号
填写账号名称。要求如下:
账号类型
此处选择普通账号。
授权数据库:
为该账号授予一个或多个数据库的权限。本参数可以留空,在创建账号后再给账号授权。
新密码
设置账号密码。要求如下:
说明确认密码
再次输入密码。
备注
备注该账号的相关信息,便于后续账号管理。最多支持256个字符。字符中不能包含
http://或https://。请妥善保存密码。如果后续在登录数据库时忘记密码,可重置密码。
RDS MySQL 5.7、8.0、8.4版本实例支持自定义数据库账号密码策略,以增强数据库访问的安全性。
长度为8~32个字符。
由大写字母、小写字母、数字、特殊字符中的三种及以上类型组成。
特殊字符为
!@#$%^&*()_+-=。MySQL 5.6支持账号长度为2~16个字符,MySQL 8.4、8.0和5.7支持账号长度为2~32个字符。
由字母、数字或下划线组成。
以字母开头,以字母或数字结尾。
不能和已有的账号名重复。
普通账号名与高权限账号名不能互相类似,例如:高权限账号名
Test1,普通账号名不能为test1等。不能包含保留关键字。
从左侧选中一个或多个数据库,单击>添加到右侧。
在右侧框中,为某个数据库选择读写(DDL+DML)、只读、仅DDL或仅DML。
如果要为多个数据库批量设置相同的权限,则单击右侧框右上角全部设后的对应权限。
说明
不同权限的详细说明请参见账号权限列表。
单击确定。
相关API
通过CreateAccount创建数据库账号。
常见问题
账号能否设置为只能从内网访问?
暂不支持在控制台设置,您可以通过SQL命令限制登录的源地址,详情请参见指定账号从特定IP地址访问数据库。
账号能否设置更细粒度,例如只能访问某个表?
暂不支持在控制台设置,您可以通过SQL命令设置,详情请参见限制账号只能访问指定表、视图、字段。
如何创建root账号?
RDS无法创建root账号,只能创建高权限账号(云数据库RDS内最高权限的账号)和普通账号。
通过CreateAccount接口创建用户时报错AccountLimitExceeded?
问题描述
用户通过CreateAccount接口创建数据库账号时,如果参数设置不正确,可能出现如下报错:
"Code": "AccountLimitExceeded", "Message": "AccountQuotaExceeded: Exceeding the allowed amount of account"
此错误表明当前实例中已达到允许的最大账号数量限制。
报错原因
账号数量限制:仅允许一个高权限账号。
参数设置问题:在MySQL中,若
AccountType设置为Super(高权限账号),但数据库中已有高权限账号,则会触发AccountLimitExceeded报错。
解决方案
创建普通账号:确保
AccountType设置为Normal,RDS对普通账号数量无限制。创建高权限账号:确保
AccountType设置为Super,可通过RDS控制台账号管理页面检查实例中是否已存在高权限账号,若已存在,请避免重复创建。
账号密码能否不使用特殊字符?
可以,数据库账号的密码由大写字母、小写字母、数字、特殊字符中的三种及以上类型组成即可。
为什么订阅实例日志时报错提示无 mysql.rds_extra 表权限?
账号备注信息存储在 mysql 库下的 rds_extra 表中。添加备注会写入 rds_extra 表,并生成该表的 binlog 日志。如果客户端订阅了实例的所有日志,且订阅账号没有 mysql.rds_extra 表的权限,将报错提示无该表权限。
如何设置数据库密码的有效期?
RDS MySQL中暂时不支持通过default_password_lifetime参数设置密码有效期。您需要使用高权限账号执行PASSWORD EXPIRE命令实现单个账号的密码过期策略(集群版不支持),例如:
CREATE USER 'testuser'@'%' IDENTIFIED BY 'StrongPass123!' PASSWORD EXPIRE INTERVAL 90 DAY;
高权限账号状态一直显示“创建中”怎么办?
创建高权限账号后,如果账号管理页面长时间显示“创建中”,请先刷新页面查看最新状态。如果刷新后仍显示“创建中”,请清理浏览器缓存后重新登录控制台的账号管理页面查看,通常状态会更新为“已激活”。
删除高权限账号后,多久才能重新创建?
删除高权限账号后立即创建新的高权限账号时,账号类型中的高权限账号选项可能暂时不可选,这不代表创建失败。请等待约 3 分钟,然后刷新账号管理页面,待高权限账号选项恢复可选后即可重新创建。一个实例只能存在一个高权限账号。