我有一个由许多用户共享的数据库,所有用户都在一个组“示例”中,并且数据库中的绝大多数对象都归“示例”所有。用户偶尔会创建一个新表 - 该表被分配给创建它的用户,因此其他用户无法更改新表。
是否有办法让表的所有权自动设置为“示例”组,而不是创建表的用户或设置触发器的方法在之后发生{ {1}} 或设置组/权限的方法,以便所有用户都被视为对象的所有者,而不管实际创建对象的人是谁?
答案 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运行命令。