You need to enable JavaScript to run this app.
文档中心
云数据库 MySQL 版

云数据库 MySQL 版

复制全文
下载 pdf
账号管理
CreateDBAccount - 创建数据库账号
复制全文
下载 pdf
CreateDBAccount - 创建数据库账号
调用 CreateDBAccount 接口创建数据库账号。​
请求类型​
同步请求。​
调试​
API Explorer
您可以通过 API Explorer 在线发起调用,无需关注签名生成过程,快速获取调用结果。
​
请求参数​
​
参数​
类型​
是否必选​
示例值​
描述​
InstanceId​
String​
是​
mysql-r3xq0zdl****​
实例 ID。​
AccountName​
String​
是​
testuser1​
数据库账号名称。命名规则如下:​
  • 长度为 2~32 个字符。​
  • 以字母开头,以字母或数字结尾。​
  • 由字母、数字、下划线(_)和中划线(-)组成。​
  • 账号名称在实例内必须是唯一的。​
  • 不能使用某些预留字,被禁用的预留字请参见禁用词列表。​
说明​
在高权限账号名称中可使用关键字 root 和 admin。​
AccountDesc​
String​
否​
这是一段账号的描述信息。​
账号信息描述信息,长度不超过 256 个字符。​
Host​
String​
否​
%​
指定账号访问数据库的 IP 地址。默认值为 %。​
  • 若指定 Host 为 %,允许该账号从任意 IP 地址访问数据库。​
  • 支持使用通配符设定可访问数据库的 IP 地址段。如指定 Host 为 192.10.10.%,则表示该账号可从 192.10.10.0~192.10.10.255 之间的 IP 地址访问数据库。​
  • 指定的 Host 需要添加在实例所绑定的白名单中,否则无法正常访问实例。可调用 ModifyAllowList 接口将 Host 添加到白名单。​
说明​
如创建的账号类型为高权限账号,主机 IP 只能指定为 %。即 AccountType 取值为 Super 时,Host 的取值只能为 %。​
AccountPassword​
String​
是​
Test@123456​
数据库账号的密码。规则如下:​
  • 长度为 8~32 个字符。​
  • 由大写字母、小写字母、数字、特殊字符中的至少三种组成。​
  • 特殊字符为 !#$%&()*+,-.=?@^_|/。​
AccountType​
String​
是​
Normal​
数据库账号类型,取值范围如下:​
  • Super:高权限账号,一个实例只能创建一个。​
  • Normal:普通账号。​
AccountPrivileges​
否​
[​
{​
"DBName":"testdb1",​
"AccountPrivilege":"ReadWrite"​
},​
{​
"DBName":"testdb2",​
"AccountPrivilege":"ReadOnly"​
}​
]​
账号的指定数据库权限信息。​
说明​
当 AccountType 取值为 Super 时,无需为 AccountPrivileges 传值。​
DryRun​
Boolean​
否​
true​
是否预览创建账号的 SQL 语句。取值:​
  • true:是。​
  • false:否。默认值。​
说明​
  • 取值为 true 时,会返回 CreateAccountSQL 字段(实际不会创建账号)。取值为 false 或不传时,返回为 null。​
  • 如为账号授予了指定数据库的权限,而数据库的名称包含了下划线(_),则在 CreateAccountSQL 字段中返回的 SQL 语句中,下划线(_)会被转义为(\\_)。​
TableColumnPrivileges​
否​
请参见请求示例。​
账号的表列权限设置。​
AuthenticationType​
String​
否​
IAM​
数据库账号的鉴权类型。取值:​
  • MySQLNative:MySQL 本地认证。​
  • IAM:IAM 认证。​
说明​
  • 该参数作为请求参数时,默认值为 MySQLNative。​
  • 仅支持在创建账号时为账号指定鉴权类型,创建账号后则不支持修改。​
  • 建议仅在应用程序每秒新建 IAM 数据库认证连接数小于 200 时,选择 IAM 验证方式。​
  • 主账号下的所有实例每秒新建的 IAM 数据库身份验证连接总数不能超过 20000,超出限制会被限流,无法建立新的连接。​
  • 选择 IAM 的验证方式后,应用程序会在连接数据库时使用生成的临时 Token 进行验证。频繁创建 IAM 数据库身份验证连接会超出连接数限额,建议您通过连接池统一管理连接,既能让应用程序重用现有的连接,也能降低频繁创建连接导致的 IAM 身份验证开销。​
​
AccountPrivilegeObject​
​
参数​
类型​
是否必选​
示例值​
描述​
AccountPrivilege​
String​
是​
ReadWrite​
数据库权限的类型。取值范围:​
  • ReadWrite:读写权限。​
  • ReadOnly:只读权限。​
  • DDLOnly:仅 DDL 权限。​
  • DMLOnly:仅 DML 权限。​
  • Custom:自定义权限。​
  • Global:全局权限。​
  • None:清除账号权限。​
说明​
该参数作为请求参数时,有以下注意事项:​
  • 仅支持在作为请求参数时允许取值为 Global 和 None。​
  • 权限类型为单选,传多个时会报错。​
  • 仅 GrantDBAccountPrivilege 接口支持为 AccountPrivilege 取值 None。当 AccountPrivilege 取值 None 时,​
  • 如果 DBName 的取值为空字符串,则清除账号的所有全局权限。​
  • 如果 DBName 的取值为指定数据库,则清除账号在该数据库的所有权限。​
AccountPrivilegeDetail​
String​
否​
SELECT,INSERT,UPDATE​
账号的权限信息。​
  • 当 AccountPrivilege 取值为 Custom 时,该字段的取值范围如下:​
  • SELECT​
  • INSERT​
  • UPDATE​
  • DELETE​
  • CREATE​
  • DROP​
  • REFERENCES​
  • INDEX​
  • ALTER​
  • CREATE TEMPORARY TABLES​
  • LOCK TABLES​
  • EXECUTE​
  • CREATE VIEW​
  • SHOW VIEW​
  • EVENT​
  • TRIGGER​
  • CREATE ROUTINE​
  • ALTER ROUTINE​
  • 当 AccountPrivilege 取值为 Global 时,该字段的取值范围如下:​
  • PROCESS​
  • REPLICATION SLAVE​
  • REPLICATION CLIENT​
  • SELECT​
  • INSERT​
  • UPDATE​
  • DELETE​
  • CREATE​
  • DROP​
  • RELOAD​
  • REFERENCES​
  • INDEX​
  • ALTER​
  • LOCK TABLES​
  • EXECUTE​
  • CREATE VIEW​
  • SHOW VIEW​
  • CREATE ROUTINE​
  • ALTER ROUTINE​
  • CREATE USER​
  • EVENT​
  • TRIGGER​
  • SHOW DATABASES​
  • CREATE TEMPORARY TABLES​
说明​
  • 作为请求参数时,在 AccountPrivilege 取值为 Custom 时必填。​
  • 在 CreateDBAccount 接口中,会自动为账号赋予 REPLICATION SLAVE、PROCESS 和 REPLICATION CLIENT 全局权限。​
  • 可取多个值。使用英文逗号(,)分隔多个权限。​
  • 写入方式为覆盖方式。​
DBName​
String​
是​
testdb1​
需修改账号授权的或账号已有权限的数据库名称。​
说明​
  • 在 CreateDBAccount 和 GrantDBAccountPrivilege 接口中作为请求参数时,需确认 DBName 对应的数据库已存在。​
  • 进行全局授权的修改时,应为 DBName 传空字符。​
​
AccountTableColumnPrivilegeObject​
​
参数​
类型​
是否必选​
示例值​
描述​
DBName​
String​
是​
TestDatabase​
对账号进行权限设置的表所属的数据库的名称。​
TablePrivileges​
否​
请参见请求示例。​
账号的表权限信息。​
ColumnPrivileges​
否​
请参见请求示例。​
账号的列权限信息。​
​
TablePrivilegeObject​
​
参数​
类型​
是否必选​
示例值​
描述​
TableName​
String​
是​
TestTable​
对账号进行权限设置的表的名称。​
AccountPrivilegeDetail​
String​
否​
"ALTER,CREATE"​
账号的表权限。取值范围(可多选):​
  • ALTER​
  • CREATE​
  • DELETE​
  • DROP​
  • INDEX​
  • INSERT​
  • SELECT​
  • SHOW VIEW​
  • TRIGGER​
  • UPDATE​
  • CREATE VIEW​
  • REFERENCES​
说明​
多个权限之间使用英文逗号(,)分隔。​
​
ColumnPrivilegeObject​
​
参数​
类型​
是否必选​
示例值​
描述​
TableName​
String​
是​
Table1​
对账号进行列权限设置的表所属的数据库的名称。​
ColumnName​
String​
是​
Column1​
对账号进行列权限设置的列的名称。​
AccountPrivilegeDetail​
String​
否​
"UPDATE,INSERT"​
对账号进行列权限设置的权限信息。取值(可多选):​
  • INSERT​
  • REFERENCES​
  • SELECT​
  • UPDATE​
说明​
多个权限之间使用英文逗号(,)分隔。​
​
返回参数​
​
参数​
类型​
示例值​
描述​
CreateAccountSQL​
Array of String​
[​
"CREATE USER IF NOT EXISTS TestAccount@'%' IDENTIFIED WITH 'mysql_native_password' BY '*****';",​
"GRANT PROCESS,REPLICATION SLAVE,REPLICATION CLIENT ON . TO TestAccount@'%';",​
"GRANT SELECT,SHOW VIEW ON mysql. TO TestAccount@'%';"​
]​
创建按照请求参数设定的账号时的 SQL 语句。在 DryRun 取值为 true 时返回。​
​
示例​
请求示例​
​
POST /?Action=CreateDBAccount&Version=2022-01-01 HTTP/1.1​
Content-Type: application/json​
Host: rds-mysql.cn-beijing.volcengineapi.com​
X-Date: 20211202T101010Z​
Authorization: HMAC-SHA256 Credential=AKLTN2I0MmFiNzMxNWE5NDgzMzk4MmVjMTVkODlkZTZ****/20211202/cn-beijing/rds_mysql/request,SignedHeaders=x-date, Signature=71d31fc7bcf990142851c9833c5656391486cda0ae2e0b8ada733b7c6458****​
{​
"InstanceId": "mysql-4674157d****",​
"AccountName": "tester",​
"Host": "%",​
"AccountDesc": "这是一段账号 tester 的描述信息。",​
"AccountPassword": "Admin@1234",​
"AccountType": "Super"​
}​
​
返回示例​
​
{​
"ResponseMetadata": {​
"RequestId": "20230110175057044F3DC5036E863466E8",​
"Action": "CreateAccount",​
"Version": "2022-01-01",​
"Service": "rds_mysql",​
"Region": "cn-beijing"​
},​
"Result": null​
}​
​
错误码​
更多详情,请参见错误码。​
​
最近更新时间:2026.06.08 15:23:16
这个页面对您有帮助吗?
有用
有用
无用
无用