↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本。 PostgreSQL 7.1 已结束支持。 请参阅 当前版本手册.

REVOKE

REVOKE — 从一个用户、一个组或所有用户回收访问权限。

大纲

REVOKE privilege [, ...]
    ON object [, ...]
    FROM { PUBLIC | GROUP groupname | username }
  

输入

privilege

可能的权限有:

SELECT

访问一个指定表/视图的所有列的权限。

INSERT

向一个指定表的所有列插入数据的权限。

UPDATE

更新一个指定表的所有列的权限。

DELETE

从一个指定表删除行的权限。

RULE

在表/视图上定义规则的权限。(见 CREATE RULE )。

ALL

回收所有权限。

object

要回收访问权限的对象的名称。可能的对象有:

  • 表

  • 视图

  • 序列

group

要从中回收权限的组的名称。

username

要从中回收权限的用户的名称。使用 PUBLIC 关键字指定所有用户。

PUBLIC

为所有用户回收指定的权限。

输出

CHANGE

成功时返回的消息。

ERROR

对象不可用或不可能从一个组或用户回收权限时返回的消息。

描述

REVOKE 允许一个对象的创建者回收先前授予所有用户(通过 PUBLIC)或某个用户或组的权限。

注意

关于现有对象上权限的更多信息,请参阅 psql 的 \z 命令:

Database    = lusitania
+------------------+---------------------------------------------+
|  Relation        |        Grant/Revoke Permissions             |
+------------------+---------------------------------------------+
| mytable          | {"=rw","miriam=arwR","group todos=rw"}      |
+------------------+---------------------------------------------+
Legend:
     uname=arwR -- privileges granted to a user
     group gname=arwR -- privileges granted to a GROUP
     =arwR -- privileges granted to PUBLIC
		  
     r -- SELECT
     w -- UPDATE/DELETE
     a -- INSERT
     R -- RULE
     arwR -- ALL
    

提示

目前,要创建一个 GROUP,你必须手动向表 pg_group 中插入数据:

INSERT INTO pg_group VALUES ('todos');
CREATE USER miriam IN GROUP todos;
     

用法

从所有用户回收表 films 上的插入权限:

REVOKE INSERT ON films FROM PUBLIC;
  

回收用户 manuel 在视图 kinds 上的所有权限:

  
REVOKE ALL ON kinds FROM manuel;
   

兼容性

SQL92

SQL92 的 REVOKE 语法有更多回收权限的能力,包括对表中个别列的权限:

REVOKE { SELECT | DELETE | USAGE | ALL PRIVILEGES } [, ...]
    ON object
    FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE }
REVOKE { INSERT | UPDATE | REFERENCES } [, ...] [ ( column [, ...] ) ]
    ON object
    FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE }
       

各个字段的细节请参阅 GRANT 。

REVOKE GRANT OPTION FOR privilege [, ...]
    ON object
    FROM { PUBLIC | username [, ...] } { RESTRICT | CASCADE }
       

回收一个用户把指定权限授予其他人的权力。各个字段的细节请参阅 GRANT 。

可能的对象有:

[ TABLE ] 表/视图
CHARACTER SET 字符集
COLLATION 排序规则
TRANSLATION 转换
DOMAIN 域

如果 user1 把一个权限带 WITH GRANT OPTION 地授予 user2,而 user2 又把它授予 user3,那么 user1 可以使用 CASCADE 关键字级联回收该权限。

如果 user1 把一个权限带 WITH GRANT OPTION 地授予 user2,而 user2 又把它授予 user3,那么当 user1 试图回收该权限时,如果他指定了 RESTRICT 关键字,回收将失败。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.