历史版本。 PostgreSQL 7.2 已结束支持。 请参阅 当前版本手册.
REVOKE
REVOKE — 移除访问权限
大纲
REVOKE { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER } [,...] | ALL [ PRIVILEGES ] }
ON [ TABLE ] object [, ...]
FROM { username | GROUP groupname | PUBLIC } [, ...]描述
REVOKE 允许一个对象的创建者从一个或多个用户或用户组回收先前授予的权限。关键字 PUBLIC 指隐式定义的组,即所有用户。
注意,任何特定用户所拥有的权限是下列权限的总和:直接授予他的权限、授予他当前所属的任何组的权限,以及授予
PUBLIC 的权限。因此,举例来说,从
PUBLIC 回收 SELECT 权限并不一定意味着所有用户都失去了对该对象的
SELECT 权限:直接拥有它或通过组拥有它的那些用户仍将拥有它。
权限类型的含义见GRANT命令的描述。
示例
回收 public 在表
films 上的插入权限:
REVOKE INSERT ON films FROM PUBLIC;
回收用户 manuel 在视图 kinds 上的所有权限:
REVOKE ALL PRIVILEGES ON kinds FROM manuel;
兼容性
SQL92
GRANT命令的兼容性说明同样适用于 REVOKE。语法摘要是:
REVOKE [ GRANT OPTION FOR ] { SELECT | INSERT | UPDATE | DELETE | REFERENCES }
ON object [ ( column [, ...] ) ]
FROM { PUBLIC | username [, ...] }
{ RESTRICT | CASCADE }
如果 user1 把一个权限带 GRANT OPTION 地授予 user2,而 user2 又把它授予 user3,那么 user1 可以使用 CASCADE 关键字级联回收该权限。如果 user1 把一个权限带 GRANT OPTION 地授予 user2,而 user2 又把它授予 user3,那么当 user1 试图回收该权限时,如果指定了 RESTRICT 关键字,回收将失败。