有没有办法恢复PostgreSQL中表的默认权限?
创建表格后,如果我在 psql 中启动\z
,我会看到:
Schema | Name | Type | Access privileges | Column access privileges
--------+-------------+----------+---------------------------+-------------------------
public | example | table | |
phpPgAdmin也表示表示例的权限是默认权限。
如果我编辑这些权限,我希望能够还原我的更改。这可能吗?
到目前为止,我尝试使用REVOKE ALL
,在启动\z
时实际显示空的访问权限字段,但显然不起作用,因为它甚至从所有者中删除了所有权限。
答案 0 :(得分:0)
没有直接的方法可以做到这一点。
您可以做的最接近的事情就是执行此操作,然后向所有者授予所有权限(您可以在pg_class
中查找所有者)。
以这种方式执行此操作的一个问题是默认权限可以设置为不同,并且纯粹在后端执行它需要使用带有plpgsql语句的DO
。更糟糕的是,由于GRANT
不是计划语句,因此您无法对其进行参数化,这意味着您必须进行字符串插值。