使用 Flyway 迁移的 Amazon RDS 中的 PostgreSQL 权限

Nat*_*ate 1 postgresql amazon-web-services flyway

我正在尝试启动并运行 Flyway 以进行 Postgres 的数据库源代码控制,但遇到了权限问题。

场景:AWS RDS PostgreSQL 实例上的新数据库。

  • 配置的 RDS 超级用户是“postgres”,我以此身份登录以创建数据库和设置角色。

  • 我创建了一个“flyway_user”帐户,我希望 Flyway 工具使用该帐户,并将其添加到 rds_superuser 角色。

  • 我创建了 Flyway 将管理的几个模式,并将所有 ON SCHEMA 授予“flyway_user”帐户。

然后,当我尝试让 Flyway 进行迁移以在这些架构中创建表时,我收到权限被拒绝的错误。那么我在这里缺少什么?预先感谢您的任何建议。

Dec*_*der 6

我知道这个问题已经很老了,但它出现在谷歌上,我也遇到了同样的问题。

虽然这些权限可能有点太宽松,但这就是我在使用 RDS 和 Flyway 特定用户时正确迁移 Flyway 所做的事情。

-- Create a Migrator Role
CREATE ROLE schema_migrator;
GRANT ALL PRIVILEGES ON DATABASE <database> TO schema_migrator;
GRANT ALL PRIVILEGES ON SCHEMA <schema> TO schema_migrator;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA <schema> TO schema_migrator;
ALTER DEFAULT PRIVILEGES IN SCHEMA <schema> GRANT ALL PRIVILEGES ON TABLES TO schema_migrator;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA <schema> TO schema_migrator;
ALTER DEFAULT PRIVILEGES IN SCHEMA <schema> GRANT ALL PRIVILEGES ON SEQUENCES TO schema_migrator;

-- Assign Role to flyway_user
GRANT schema_migrator TO flyway_user;
Run Code Online (Sandbox Code Playgroud)