PostgreSQL 撤销

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

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

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 PostgreSQL Sakila 示例数据库:

psql -U postgres -d dvdrental

其次,创建一个 jim 使用 LOGIN 和 PASSWORD 属性调用的新角色:

CREATE ROLE jim 
LOGIN 
PASSWORD 'securePass1';

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

GRANT ALL 
ON film
TO jim;

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

GRANT SELECT
ON actor
TO jim;

步骤 2. 撤销角色的权限

要从角色撤消 SELECT 对 actor 表的特权 jim ,请使用以下语句:

REVOKE SELECT
ON actor
FROM jim;

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

REVOKE ALL
ON film
FROM jim;

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

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

概括

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