PostgreSQL – 撤销
在PostgreSQL 中, REVOKE语句用于通过角色撤销先前授予的对数据库对象的权限。
下面显示了 REVOKE 语句的语法:
Syntax:
REVOKE privilege | ALL
ON TABLE tbl_name | ALL TABLES IN SCHEMA schema_name
FROM role_name;
我们来分析一下上面的语法:
- 首先,指定要撤销的权限。使用 ALL 选项撤销所有先前授予的权限。
- 然后,在 ON 关键字后设置表名。
- 最后,指定要撤销其权限的角色的名称。
例子:
首先,登录dvdrental 示例数据库为 Postgres:
psql -U postgres -d dvdrental
现在使用 LOGIN和PASSWORD属性初始化一个名为“abhishek”的角色,如下所示:
CREATE ROLE abhishek
LOGIN
PASSWORD 'geeks12345';
现在获得电影的所有特权 角色“abhishek”的表格如下所示:
GRANT ALL
ON film
TO abhishek;
现在将演员表上的 SELECT权限提供给角色“abhishek”,如下所示:
GRANT SELECT
ON actor
TO abhishek;
这里我们将撤销角色'abhishek'对actor表的SELECT权限,如下图:
REVOKE SELECT
ON actor
FROM abhishek;
如果您希望从角色 'abhishek'撤消对 film 表的所有权限,请使用带有 ALL 选项的 REVOKE语句,如下所示:
REVOKE ALL
ON film
FROM abhishek;
输出: