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

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 7.1 已于 2006 年 4 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

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 关键字,回收将失败。

提交更正

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