Postgresql 是否自动更改Postgres表的所有者?
我有一个由许多用户共享的数据库,所有用户都在一个组“example”中,数据库中的绝大多数对象都属于“example”。偶尔,用户会创建一个新表-该表被分配给创建它的用户,因此其他用户无法更改新表Postgresql 是否自动更改Postgres表的所有者?,postgresql,alter-table,grant,Postgresql,Alter Table,Grant,我有一个由许多用户共享的数据库,所有用户都在一个组“example”中,数据库中的绝大多数对象都属于“example”。偶尔,用户会创建一个新表-该表被分配给创建它的用户,因此其他用户无法更改新表 是否有办法将表的所有权自动设置为组“示例”而不是创建表的用户,也不是在创建选项卡之后设置触发器的方法,也不是设置组/权限的方法,这样所有用户都将被视为对象的所有者,而不管实际创建对象的是谁?您可以通过以下方式更改默认权限: 更改模式public中的默认权限将SELECT表授予public 或授予写访问
是否有办法将表的所有权自动设置为组“示例”而不是创建表的用户,也不是在
创建选项卡之后设置触发器的方法,也不是设置组/权限的方法,这样所有用户都将被视为对象的所有者,而不管实际创建对象的是谁?您可以通过以下方式更改默认权限:
更改模式public中的默认权限将SELECT表授予public
或授予写访问权限:
更改模式公共中的默认权限将表上的SELECT、INSERT、UPDATE、DELETE授予公共
您可能希望使用事件触发器
这在9.3以后的所有版本的Pg中都是可行的,但根据您的版本,可能需要不同的方法,因为事件触发器的结构已经显著改进
在早期版本中,您可以在表目录中查找当前用户拥有的项。在较新版本中,您可以使用pg\u event\u trigger\u ddl\u命令
获取所需信息。您希望在ddl端运行该命令。我真正需要的是ALTER
权限-只有当一个用户创建一个新的表时,表的所有者才可以使用这些权限,他们被指定为所有者,而不是公共组。请重试