同一PostgreSQL数据库的两个所有者

Dav*_*lds 11 postgresql roles usergroups

是否可以使用Postgresql创建一个有2个用户的数据库,这些用户就像数据库的所有者一样?

我可以创建一个组角色并将两个用户添加到该组,然后使该组成为数据库的所有者,但这要求两个用户必须在每个连接上手动设置其角色,以使他们创建的任何表都可以访问另一个用户.是否有任何方法可以使组成为用户每次登录时的默认角色或以任何其他方式实现相同的操作?

Mag*_*der 12

不,每个数据库只能有一个所有者.如前所述,您可以拥有多个超级用户,或者您可以专门授予对随后继承的组角色的权限.

您可能需要查看http://blog.hagander.net/archives/70-Faking-the-dbo-role.html,以便伪造类似于您所要求的内容.它并不完美,但对你来说可能已经足够了.它至少应该能够解决对象所有权问题.


Tim*_*thy 6

啊,发现它: PostgreSQL文档:第20章数据库角色和权限

"具有INHERIT属性的成员角色自动使用其所属角色的权限."

CREATE ROLE joe LOGIN INHERIT;
CREATE ROLE admin NOINHERIT;
GRANT admin TO joe;
Run Code Online (Sandbox Code Playgroud)

"作为角色joe连接后,数据库会话将立即使用直接授予joe的权限以及授予admin的任何权限,因为joe"继承了"admin的权限."