在 Postgres 数据库中创建对象时 Liquibase 的默认角色

Rad*_*anu 3 postgresql roles liquibase

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

小智 8

Liquibase 对所有变更集使用单个连接。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>
Run Code Online (Sandbox Code Playgroud)