首先是简短版本:
SET ROLE
是否可以使用特定角色自动调用新的 PostgreSQL 数据库连接,无论是通过连接角色的配置(使用ALTER ROLE
),还是连接 URI 末尾的选项?
更长,有上下文:
我正在设置一个 Web 应用程序以使用轮换数据库凭据(因此,有多种角色在起作用)。但是,这些凭据也用于修改数据库(通过 Rails 迁移),这意味着表将由一个不会长期存在的角色拥有。
我可以修改轮换凭据,以便它们从父角色(它本身不能登录)继承,然后通过SET ROLE
所有数据库修改归父角色所有,而不是短期子角色。这解决了所有权问题,但它需要调用每个连接SET ROLE parent
——实际上并不可行。
因此,我需要一些方法来确保每个子连接始终在父角色的上下文中运行。这可能吗?