自动更改Postgres表的所有者?

时间:2016-11-02 13:55:34

标签: postgresql alter-table grant

我有一个由许多用户共享的数据库,所有用户都在一个组“示例”中,并且数据库中的绝大多数对象都归“示例”所有。用户偶尔会创建一个新表 - 该表被分配给创建它的用户,因此其他用户无法更改新表。

是否有办法让表的所有权自动设置为“示例”组,而不是创建表的用户或设置触发器的方法之后发生{ {1}} 设置组/权限的方法,以便所有用户都被视为对象的所有者,而不管实际创建对象的人是谁?

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式更改默认权限:

修改公共资源中的公共资格特权的公开资格;

或提供写访问权限:

在SCHEMA公共格兰特选择,插入,更新,删除公共表格中的更改默认权限;

https://www.postgresql.org/docs/9.0/static/sql-alterdefaultprivileges.html

答案 1 :(得分:0)

您可能想要使用EVENT TRIGGER

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

在早期版本中,您可以查看当前用户拥有的项目的表目录。在较新的版本中,您可以使用pg_event_trigger_ddl_commands来获取所需的信息。你想在ddl end运行命令。