PostgreSQL 教程: REVOKE 撤销权限

九月 24, 2023

摘要:在本教程中,您将了解 PostgreSQL 的REVOKE语句,用于删除角色权限。

PostgreSQL REVOKE 语句简介

REVOKE语句撤销角色先前授予的数据库对象权限

以下显示了从角色撤销一个或多个表的权限的REVOKE语句的语法:

REVOKE privilege | ALL
ON TABLE table_name |  ALL TABLES IN SCHEMA schema_name
FROM role_name;

在这个语法中:

  • 首先,指定您要撤销的一个或多个权限。您可以使用ALL选项撤销所有权限。
  • 其次,在ON关键字后面指定表的名称。您可以使用ALL TABLES来撤销模式中所有表的指定权限。
  • 第三,指定要撤销权限的角色的名称。

PostgreSQL REVOKE 语句示例

让我们看一个使用REVOKE语句的例子。

步骤 1. 创建角色并授予权限

首先,使用postgres用户登录示例数据库dvdrental

psql -U postgres -d dvdrental    

其次,创建一个新角色,名为jim,指定LOGINPASSWORD属性:

CREATE ROLE jim 
LOGIN 
PASSWORD 'securePass1';

第三步,将film表上的所有权限授予角色jim

GRANT ALL 
ON film
TO jim;

最后,将actor表的SELECT权限授予角色jim

GRANT SELECT
ON actor
TO jim;

步骤 2. 撤销角色的权限

要撤销角色jimactor表的SELECT权限,请使用以下语句:

REVOKE SELECT
ON actor
FROM jim;

要撤销角色jimfilm表的所有权限,可以使用带有ALL选项的REVOKE语句,如下:

REVOKE ALL
ON film
FROM jim;

撤销其他数据库对象的权限

要撤销其他数据库对象(例如序列函数存储过程模式数据库)的权限,请查看 REVOKE 语句

概括

  • 使用 PostgreSQL 的REVOKE语句撤销先前授予角色的数据库对象权限。