【问题标题】:What Postgres privileges should I give to Flyway?我应该给 Flyway 哪些 Postgres 特权?
【发布时间】:2018-11-20 09:18:20
【问题描述】:

我在 Postgres 中创建了一个新数据库和一个专门用于 Flyway 架构迁移的新用户。

createdb mydb
createuser mydb_deploy

我应该给这个用户什么合理的权限,才足以让 Flyway 连接到数据库并进行架构迁移?

我是 Postgres 和 Flyway 的新手。

【问题讨论】:

  • 我不会通过 Flyway 创建数据库。这是应由 DBA 而非应用程序用户完成的 DBA 任务。
  • 我不打算通过 Flyway 创建新数据库。我刚接触 Postgres,对部署用户应该拥有什么特权感到困惑?
  • 那你为什么以创建数据库和用户的代码为例呢?如果你不需要从flyway创建数据库,那么只需让用户成为该数据库的所有者,不需要额外的权限

标签: postgresql flyway


【解决方案1】:

Flyway 用户需要非常高的权限,因为这将是所有已创建对象的所有者。

您可以简单地分配超级用户权限,但应尽可能避免这样做。

从空数据库开始时,将GRANT ALL ON DATABASE 发送给 Flyway 用户,以便它可以在数据库中创建架构,然后在架构中创建对象。

然后 Flyway 用户将拥有数据库中的所有对象,并且一切都应该正常工作。

【讨论】:

  • 谢谢,我授予GRANT ALL ON DATABASE mydb TO mydb_deploy; 并且它成功了。
  • 这如何符合最小特权原则?如果 Flyway 用户拥有超级用户角色,它是否拥有更多它真正需要的权限?
  • @Rubio 你绝对应该永远使用超级用户。我说:“你可以,……但是……”。但是,创建自己的表的工具根本无法很好地遵循最小权限原则。
  • @Laurenz 同意。我必须为我们的 PostgreSQL 数据库计划安全加固,这有点问题。
猜你喜欢
  • 2018-06-21
  • 1970-01-01
  • 1970-01-01
  • 2015-07-10
  • 2010-10-05
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 2023-02-17
相关资源
最近更新 更多