使用主账号在RDS MySQL 8.0的sys库创建表时权限被拒的问题
排查RDS MySQL 8.0 sys库创建表权限拒绝问题
以下是几个核心排查方向:
sys数据库的特殊属性:MySQL的
sys库是官方维护的系统视图集合,并非用于存储用户自定义表的普通数据库。RDS实例会严格保护系统库的完整性,即使是主用户也被禁止对sys库执行创建表、修改结构等写操作,这是RDS的默认安全限制。验证实际权限范围:执行
SHOW GRANTS FOR 'admin'@'%';查看用户的实际权限。如果你的授权语句是GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';,理论上包含全局权限,但RDS会对系统库(sys、mysql、information_schema等)做额外权限拦截,这类权限不会生效。权限未生效的可能性:如果是刚授予的权限,虽然RDS通常会自动加载权限,但可以尝试执行
FLUSH PRIVILEGES;刷新权限(不过这个操作对RDS的主用户来说一般不是必要的,但可以排除这个可能性)。替代方案:不要在
sys库中创建自定义表,应该创建自己的业务数据库(比如CREATE DATABASE my_biz_db;),然后在这个库中操作,主用户对自定义库的操作权限是完全开放的。
内容的提问来源于stack exchange,提问作者Swap2019
相关产品推荐
相关产品推荐

