使用Postgresql可以创建一个数据库,其中有2个用户像所有者一样操作数据库吗?
我可以创建一个组角色,并将两个用户添加到该组中,然后使该组成为数据库的所有者,但这要求两个用户必须在每次连接时手动设置他们的角色,以使他们创建的任何表格对另一个用户可访问。 是否有任何方法可以使组成为用户每次登录时的默认角色或任何其他方式来实现相同的功能?
使用Postgresql可以创建一个数据库,其中有2个用户像所有者一样操作数据库吗?
我可以创建一个组角色,并将两个用户添加到该组中,然后使该组成为数据库的所有者,但这要求两个用户必须在每次连接时手动设置他们的角色,以使他们创建的任何表格对另一个用户可访问。 是否有任何方法可以使组成为用户每次登录时的默认角色或任何其他方式来实现相同的功能?
不行,每个数据库只能有一个所有者。正如先前所述,您可以拥有多个超级用户,或者可以将权限授予特定的组角色,然后进行继承。
你可能想看看http://blog.hagander.net/archives/70-Faking-the-dbo-role.html,这是一种伪造类似于您所要求的东西的方法。它并不完美,但对于您来说可能足够好了。它应该能够解决对象所有权问题。
"具有继承属性的成员角色自动拥有其所属角色的权限。"
CREATE ROLE joe LOGIN INHERIT;
CREATE ROLE admin NOINHERIT;
GRANT admin TO joe;