You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL RDS root用户无法为用户授予角色的Error 1227问题求助

解决MySQL RDS中root用户授予角色时权限不足的问题

问题重现

使用MySQL 8版本的RDS实例,通过root用户执行角色分配操作时触发错误:

Error running SQL (GRANT 'test_role' TO 'test_user'@'%'): Error 1227: Access denied; you need (at least one of) the WITH ADMIN, ROLE_ADMIN, SUPER privilege(s) for this operation

直接执行以下SQL语句同样报错:

CREATE ROLE 'test_role';
GRANT SELECT, EXECUTE ON checkpoint_gg.* TO 'test_role';
CREATE USER 'test_user'@'%' IDENTIFIED BY 'password';
GRANT 'test_role' TO 'test_user'@'%';

查看root用户权限,确认已拥有CREATE ROLE、DROP ROLE,但缺少ROLE_ADMIN权限。

原因分析

AWS RDS的root用户并非完全意义上的超级用户,默认未分配ROLE_ADMIN权限——而MySQL 8中,将角色授予用户必须具备该权限(或SUPER权限,不推荐在RDS中使用SUPER)。

解决方案

  1. 为root用户添加ROLE_ADMIN权限:
GRANT ROLE_ADMIN ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  1. 重新执行角色授予语句:
GRANT 'test_role' TO 'test_user'@'%';
  1. 若使用Terraform,可通过mysql_exec资源先完成root用户的权限补充,再执行后续的角色、用户创建及授权操作。

内容的提问来源于stack exchange,提问作者Kay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 14:29:09