【问题标题】:Liquibase default role when creating objects in Postgres database在 Postgres 数据库中创建对象时的 Liquibase 默认角色
【发布时间】:2019-08-29 14:08:48
【问题描述】:

在我的应用程序中,Liquibase 使用一个特殊用户 liquibase 来连接到数据库并应用所有更改集。因此,所有创建的表、序列、函数等都将用户 liquibase 作为所有者。 liquibase 用户是角色 db_ddl_admin 的成员,我希望该角色成为所有已创建对象的所有者。我可以通过在每个更改集的开头添加语句SET ROLE TO db_ddl_admin 来实现这一点,但我不喜欢这种方法。在 Liquibase 中是否有集中设置此类设置的方法?

【问题讨论】:

    标签: postgresql liquibase roles


    【解决方案1】:

    Liquibase 对所有变更集使用单一连接。所以在 changeLog 的开头运行一次SET ROLE 语句就足够了:

    <databaseChangeLog ...>
    
        <changeSet runAlways="true" author="setup" id="init-role" dbms="postgresql">
          <sql>SET ROLE TO db_ddl_admin</sql>
        </changeSet>
    
        ... your changeSets go here ...
    
    </databaseChangeLog>
    

    【讨论】:

      猜你喜欢
      • 2012-07-03
      • 1970-01-01
      • 2017-08-21
      • 2011-08-25
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      相关资源
      最近更新 更多