Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 恢复PostgreSQL中的默认权限_Database_Postgresql_Privileges - Fatal编程技术网

Database 恢复PostgreSQL中的默认权限

Database 恢复PostgreSQL中的默认权限,database,postgresql,privileges,Database,Postgresql,Privileges,有没有办法在PostgreSQL中恢复表的默认权限 创建表后,如果在psql中启动\z,我会看到: Schema | Name | Type | Access privileges | Column access privileges --------+-------------+----------+---------------------------+------------------------- public | example |

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

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

 Schema |    Name     |   Type   |     Access privileges     | Column access privileges
--------+-------------+----------+---------------------------+-------------------------
 public | example     | table    |                           |
phpPgAdmin还说,表示例的权限是默认权限。 如果我编辑这些权限,我希望能够还原我的更改。这可能吗?
到目前为止,我尝试了
REVOKE ALL
,它在启动
\z
时实际上会显示一个空的访问权限字段,但显然不起作用,因为它甚至会删除所有者的所有权限。

实际上没有直接的方法可以做到这一点

您可以做的最接近的事情是这样做,然后将所有内容授予所有者(您可以在
pg_class
中查找所有者)

这样做的一个问题是,默认权限的设置可能与此不同,而纯粹在后端执行此操作需要使用带有plpgsql语句的
DO
。更糟糕的是,由于
GRANT
不是一个计划语句,所以不能对其进行参数化,这意味着必须进行字符串插值