恢复PostgreSQL中的默认权限

时间:2014-03-07 14:31:39

标签: database postgresql privileges

有没有办法恢复PostgreSQL中表的默认权限?

创建表格后,如果我在 psql 中启动\z,我会看到:

 Schema |    Name     |   Type   |     Access privileges     | Column access privileges
--------+-------------+----------+---------------------------+-------------------------
 public | example     | table    |                           |

phpPgAdmin也表示表示例的权限是默认权限。 如果我编辑这些权限,我希望能够还原我的更改。这可能吗? 到目前为止,我尝试使用REVOKE ALL,在启动\z时实际显示空的访问权限字段,但显然不起作用,因为它甚至从所有者中删除了所有权限。

1 个答案:

答案 0 :(得分:0)

没有直接的方法可以做到这一点。

您可以做的最接近的事情就是执行此操作,然后向所有者授予所有权限(您可以在pg_class中查找所有者)。

以这种方式执行此操作的一个问题是默认权限可以设置为不同,并且纯粹在后端执行它需要使用带有plpgsql语句的DO。更糟糕的是,由于GRANT不是计划语句,因此您无法对其进行参数化,这意味着您必须进行字符串插值。