我有一个名为host_db
的现有postgres 11
数据库,我们有一个称为host_app
的现有应用程序,它已经使用该数据库很长时间了。此服务使用超级用户host_app_user
连接到数据库并执行所有事务。因此,所有的数据库对象都属于这个数据库超级用户。
现在,我们也想在数据库中创建db_admin
超级用户角色,其凭据将由Vault
维护。但为了避免混淆数据库所有权,我认为每当db_admin
登录到数据库时,它都会扮演host_app_user
的角色。这样,记录的管理员所做的任何更改都将作为host_app_user
完成。
我的问题是:有没有一种方法可以在登录时自动在postgres中设置登录用户的角色?
使用:
alter role db_admin set role host_app_user;
登录时,db_admin
的角色将设置为host_app_user
。
请注意,db_admin
必须是host_app_user
的成员。
我认为答案是否定的。但你可以这样做:
grant db_admin to host_app_user;
则host_app_user
将具有db_admin
所具有的所有权限。