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