如何通过IAM策略为RDS用户授予创建Schema权限?
RDS创建Schema权限问题解答
结论
无法通过IAM策略授予RDS数据库内部的创建Schema权限。
原因
IAM策略仅管控AWS服务层面的操作权限(比如创建、修改RDS实例),而创建Schema、数据库对象权限这类属于数据库引擎自身的权限体系(如PostgreSQL/MySQL的内部权限系统),两者是完全独立的权限控制维度。你遇到的ERROR: permission denied for database {database name}错误是数据库引擎返回的内部权限不足问题,IAM策略无法干预这类验证逻辑。
正确解决步骤
必须通过数据库管理员账号(如PostgreSQL的postgres、MySQL的root)执行数据库内部授权语句:
- 若使用PostgreSQL:
GRANT CREATE ON DATABASE {database name} TO {rds_user}; - 若使用MySQL(Schema等价于Database):
-- 授予全局创建数据库权限 GRANT CREATE ON *.* TO {rds_user}; -- 或仅授予指定数据库的操作权限 GRANT ALL PRIVILEGES ON {database name}.* TO {rds_user};
补充说明
你查阅的文档是关于RDS安全组 ingress 授权的,属于网络访问控制范畴,和数据库内部权限无关,因此找不到对应内容。
内容的提问来源于stack exchange,提问作者David Backx
相关产品推荐
相关产品推荐

