RDS MySQL高权限账号只能通过控制台或API创建,一个实例仅限一个,创建后不可更改类型;不支持SQL语句(如CREATE USER)创建,因其权限由阿里云底层注入,非MySQL原生授权表映射,且账号名全局
|
RDS MySQL高权限账号只能通过控制台或API创建,一个实例仅限一个,创建后不可更改类型;不支持SQL语句(如CREATE USER)创建,因其权限由阿里云底层注入,非MySQL原生授权表映射,且账号名全局唯一、密码强度严格,创建失败常见于实例状态异常或已存在高权限账号。 不能在RDS MySQL中“自定义创建”高权限账号——它只能通过控制台或API创建,且一个实例仅允许存在一个,创建后类型不可更改。 高权限账号的创建入口和限制高权限账号不是用 CREATE USER 或 GRANT SQL 语句创建的,RDS 层面做了硬性拦截:即使你用高权限账号连接后执行 CREATE USER 'admin2'@'%' IDENTIFIED BY 'xxx';,该账号在 RDS 控制台不会显示,也无法被赋予实例级权限(如 RELOAD、EVENT、SUPER 等),更无法执行 KILL 其他连接。
为什么不能用 SQL 创建高权限账号RDS MySQL 的高权限账号本质是云平台托管的“管控代理”,其权限由阿里云底层服务注入,不依赖 MySQL 原生授权表(mysql.user 等)的完整映射。你看到的 SELECT * FROM mysql.user WHERE user = 'rdsAdmin' 结果,只是平台同步的部分字段,缺失关键权限字段(如 Super_priv 始终为 N),这是有意为之的安全隔离设计。
创建失败的常见原因和应对控制台点击「确定」后提示失败,多数不是配置错误,而是受实例状态或平台策略限制:
真正容易被忽略的是:高权限账号一旦创建,就绑定到该实例生命周期,无法迁移、无法降级、无法导出权限脚本。后续所有权限精细化控制(比如只给某个库的 SELECT + INSERT),都必须靠它去给普通账号授,而不是自己直接操作业务表。 |
2021-06-02
2021-06-05
2022-06-27
2024-07-31
2024-02-19