↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 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 6.5 已于 2004 年 6 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

REVOKE

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

大纲

REVOKE privilege [, ...]
    ON object [, ...]
    FROM { PUBLIC | GROUP ER">gBLE> | 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 关键字,回收将失败。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。