自动更改Postgres表的所有者?

4
我有一个被许多用户共享的数据库,所有用户都在一个名为“example”的组中,数据库中绝大部分对象都归属于“example”。偶尔会有用户创建新表 - 这个表将被分配给创建它的用户,因此其他用户无法更改新表。
是否有一种方法可以自动将表的所有权设置为组“example”,而不是创建表的用户,或者设置在CREATE TABLE之后发生的触发器,或者设置组/权限,以便所有用户都被视为对象的所有者,而不管实际创建者是谁?

1
尝试使用事件触发器 - Abelisto
2个回答

0

你可能想要使用一个 EVENT TRIGGER

这在所有版本的 Pg 中都是可行的,从 9.3 开始,但根据您的版本可能需要不同的方法,因为事件触发器的结构已经显著改进。

在早期版本中,您可以查看当前用户拥有的表目录。在较新的版本中,您可以使用 pg_event_trigger_ddl_commands 来获取所需的信息。您希望在 ddl 结束时运行该命令。


0

1
我真正需要的是ALTER权限 - 它们只对表的所有者可用,当一个用户创建新表时,它们被分配为所有者而不是公共组。 - J. Doe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接