【问题标题】:Restore default privileges in PostgreSQL在 PostgreSQL 中恢复默认权限
【发布时间】:2014-03-07 14:31:38
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: database postgresql privileges


    【解决方案1】:

    实际上并没有直接的方法来做到这一点。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 2021-11-01
      • 2014-02-26
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多