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

时间:2019-04-08 12:12:04

标签: postgresql liquibase roles

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

1 个答案:

答案 0 :(得分:2)

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>
相关问题