---
title: "REVOKE - OceanBase 数据库 V4.1.0 | OceanBase 文档中心"
description: REVOKE 描述 该语句用于系统管理员撤销用户的某些权限。 使用说明如下： 用户必须拥有被撤销的权限（例如， user1 要撤销 user2 对表 tbl1 的 SELECT 权限，则 user1 必须拥有表 tbl1 的 SELECT 的权限），并且拥有 GRANT OPTION 权限。 撤销 ALL PRIVI…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.1.0

# REVOKE

更新时间：2023-07-28 10:45:58

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.1.0/zh-CN/700.reference/400.development-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/900.sql-statement-of-oracle-mode/300.dcl-of-oracle-mode/2900.revoke-of-oracle-mode.md)  

## 描述

该语句用于系统管理员撤销用户的某些权限。

使用说明如下：

- 用户必须拥有被撤销的权限（例如，`user1` 要撤销 `user2` 对表 `tbl1` 的 `SELECT` 权限，则 `user1` 必须拥有表 `tbl1` 的 `SELECT` 的权限），并且拥有 `GRANT OPTION` 权限。
 - 撤销 `ALL PRIVILEGES` 和 `GRANT OPTION` 权限时，当前用户必须拥有全局 `GRANT OPTION` 权限，或者对权限表的 `UPDATE` 及 `DELETE` 权限。
 - 当权限没有 `GRANT OPTION` 时，撤销操作不会级联。例如，用户 `user1` 给 `user2` 授予了某些权限，撤回 `user1` 的权限不会同时也撤回 `user2` 的相应权限。当拥有 `GRANT OPTION` 时，撤销操作会级联。

## 语法

```sql
/*撤销对象权限*/
REVOKE obj_privileges
  ON obj_clause FROM user_list;

user_list:
  user_name [, user_name ...]

obj_privileges:
  obj_privilege [, obj_privilege ...]

obj_privilege:
    ALTER
  | DELETE
  | INDEX
  | INSERT
  | SELECT
  | UPDATE
  | REFERENCES
  | EXECUTE

obj_clause:
  relation_name
  | relation_name '.' relation_name
  | DIRECTORY relation_name

relation_name:
  STR_VALUE

/*撤销系统权限*/
REVOKE {system_privilege_list | ALL PRIVILEGES}
  FROM user_list;
REVOKE ALL [PRIVILEGES], GRANT_OPTION FROM user_list;

system_privilege_list:
  system_privilege [, system_privilege ...]

system_privilege:
  CREATE SESSION
  | EXEMPT REDACTION POLICY
  | SYSDBA
  | SYSOPER
  | SYSBACKUP
  | CREATE TABLE
  | CREATE ANY TABLE
  | ALTER ANY TABLE
  | BACKUP ANY TABLE
  | DROP ANY TABLE
  | LOCK ANY TABLE
  | COMMENT ANY TABLE
  | SELECT ANY TABLE
  | INSERT ANY TABLE
  | UPDATE ANY TABLE
  | DELETE ANY TABLE
  | FLASHBACK ANY TABLE
  | CREATE ROLE
  | DROP ANY ROLE
  | GRANT ANY ROLE
  | ALTER ANY ROLE
  | AUDIT ANY
  | GRANT ANY PRIVILEGE
  | GRANT ANY OBJECT PRIVILEGE
  | CREATE ANY INDEX
  | ALTER ANY INDEX
  | DROP ANY INDEX
  | CREATE ANY VIEW
  | DROP ANY VIEW
  | CREATE VIEW
  | SELECT ANY DICTIONARY
  | CREATE PROCEDURE
  | CREATE ANY PROCEDURE
  | ALTER ANY PROCEDURE
  | DROP ANY PROCEDURE
  | EXECUTE ANY PROCEDURE
  | CREATE SYNONYM
  | CREATE ANY SYNONYM
  | DROP ANY SYNONYM
  | CREATE PUBLIC SYNONYM
  | DROP PUBLIC SYNONYM
  | CREATE SEQUENCE
  | CREATE ANY SEQUENCE
  | ALTER ANY SEQUENCE
  | DROP ANY SEQUENCE
  | SELECT ANY SEQUENCE
  | CREATE TRIGGER
  | CREATE ANY TRIGGER
  | ALTER ANY TRIGGER
  | DROP ANY TRIGGER
  | CREATE PROFILE
  | ALTER PROFILE
  | DROP PROFILE
  | CREATE USER
  | ALTER USER
  | DROP USER
  | CREATE TYPE
  | CREATE ANY TYPE
  | ALTER ANY TYPE
  | DROP ANY TYPE
  | EXECUTE ANY TYPE
  | UNDER ANY TYPE
  | PURGE DBA_RECYCLEBIN
  | CREATE ANY OUTLINE
  | ALTER ANY OUTLINE
  | DROP ANY OUTLINE
  | SYSKM
  | CREATE TABLESPACE
  | ALTER TABLESPACE
  | DROP TABLESPACE
  | SHOW PROCESS
  | ALTER SYSTEM
  | CREATE DATABASE LINK
  | CREATE PUBLIC DATABASE LINK
  | DROP DATABASE LINK
  | ALTER SESSION
  | ALTER DATABASE

/*撤销角色*/
REVOKE role_list FROM user_name;

role_list:
role_name [, role_name ...]

```

## 参数解释

| 参数 | 描述 |
| --- | --- |
| obj_privileges | 指定撤销的对象权限类型。具体的权限类型及其说明请参见下方权限类型说明表。 同时撤销多个权限时，权限类型用","隔开。 |
| system_privilege | 指定撤销的系统权限类型。 同时撤销多个权限时，权限类型用","隔开。 |
| obj_clause | 指定撤销权限的层级，`relation_name` 指定具体对象的名称。权限可以分为以下几个层级：   - 全局层级：适用于所有的数据库。 - 数据库层级：适用于一个给定数据库中的所有目标。 - 表层级：表权限适用于一个给定表中的所有列。 |
| role_list | 角色列表。 |

可以撤销的权限类型如下表所示。

**权限类型说明表**

| 权限 | 说明 |
| --- | --- |
| ALL PRIVILEGES | 除 `GRANT OPTION` 以外所有权限。 |
| ALTER | `ALTER TABLE` 的权限。 |
| CREATE | `CREATE TABLE` 的权限。 |
| DELETE | `DELETE` 的权限。 |
| DROP | `DROP` 的权限。 |
| GRANT OPTION | `GRANT OPTION` 的权限。 |
| INSERT | `INSERT` 的权限。 |
| UPDATE | `UPDATE` 的权限。 |
| SELECT | `SELECT` 的权限。 |
| INDEX | `CREATE INDEX` 和 `DROP INDEX` 的权限。 |
| SHOW VIEW | `SHOW CREATE VIEW` 权限。 |
| SHOW DATABASES | 全局 `SHOW DATABASES` 的权限。 |
| SUPER | `SET GLOBAL` 修改全局系统参数的权限。 |
| REFERENCES | 创建指向表的约束的权限。 |
| EXECUTE | 执行预处理程序的权限。 |
| FLASHBACK | `FLASHBACK` 的权限。 |
| READ | `READ` 的权限。 |
| WRITE | `WRITE` 的权限。 |
| CREATE SESSION | 连接到数据库的权限。 |
| EXEMPT REDACTION POLICY | 绕过任意现有 `REDACTION POLICY` 并查看数据的权限。 |
| SYSDBA | `SYSDBA` 的权限。 |
| SYSOPER | `SYSOPER` 的权限。 |
| SYSBACKUP | `SYSBACKUP` 的权限。 |
| CREATE TABLE | 在指定用户 Schema 内创建表的权限。 |
| CREATE ANY TABLE | 在除 SYS 用户外所有用户 Schema 内创建表的权限。 |
| ALTER ANY TABLE | 在除 SYS 用户外所有用户 Schema 内修改表的权限。 |
| BACKUP ANY TABLE | 在除 SYS 用户外所有用户 Schema 内创建表的权限。 |
| DROP ANY TABLE | 在除 SYS 用户外所有用户 Schema 内备份表的权限。 |
| LOCK ANY TABLE | 在除 SYS 用户外所有用户 Schema 内锁定表的权限。 |
| COMMENT ANY TABLE | 在除 SYS 用户外所有用户 Schema 内评论表的权限。 |
| SELECT ANY TABLE | 在除 SYS 用户外所有用户 Schema 内查看表的权限。 |
| INSERT ANY TABLE | 在除 SYS 用户外所有用户 Schema 内的表插入行的权限。 |
| UPDATE ANY TABLE | 在除 SYS 用户外所有用户 Schema 内的表更新行的权限。 |
| DELETE ANY TABLE | 在除 SYS 用户外所有用户 Schema 内删除表的权限。 |
| FLASHBACK ANY TABLE | 在除 SYS 用户外所有用户 Schema 内 `FLASHBACK` 表的权限。 |
| CREATE ROLE | 创建角色的权限。 |
| DROP ANY ROLE | 删除任意角色的权限。 |
| GRANT ANY ROLE | 授予任意角色的权限。 |
| ALTER ANY ROLE | 修改任意角色的权限。 |
| AUDIT ANY | 在除 SYS 用户外所有用户 Schema 内修改对象的权限。 |
| GRANT ANY PRIVILEGE | 授予任意系统权限的权限。 |
| GRANT ANY OBJECT PRIVILEGE | 授予任意对象权限的权限。 |
| CREATE ANY INDEX | 在除 SYS 用户外所有用户 Schema 内创建索引的权限。 |
| ALTER ANY INDEX | 在除 SYS 用户外所有用户 Schema 内修改索引的权限。 |
| DROP ANY INDEX | 在除 SYS 用户外所有用户 Schema 内删除索引的权限。 |
| CREATE ANY VIEW | 在除 SYS 用户外所有用户 Schema 内创建视图的权限。 |
| DROP ANY VIEW | 在除 SYS 用户外所有用户 Schema 内删除索引的权限。 |
| CREATE VIEW | 在指定用户 Schema 内创建视图的权限。 |
| SELECT ANY DICTIONARY | 在指定用户 Schema 内查询 `DICTIONARY` 的权限。 |
| CREATE PROCEDURE | 在指定用户 Schema 内创建 `PROCEDURE` 的权限。 |
| CREATE ANY PROCEDURE | 在除 SYS 用户外所有用户 Schema 内创建`PROCEDURE` 的权限。 |
| ALTER ANY PROCEDURE | 在除 SYS 用户外所有用户 Schema 内修改`PROCEDURE` 的权限。 |
| DROP ANY PROCEDURE | 在除 SYS 用户外所有用户 Schema 内删除`PROCEDURE` 的权限。 |
| EXECUTE ANY PROCEDURE | 在除 SYS 用户外所有用户 Schema 内执行`PROCEDURE` 的权限。 |
| CREATE SYNONYM | 在指定用户 Schema 内创建 `SYNONYM` 的权限。 |
| CREATE ANY SYNONYM | 在除 SYS 用户外所有用户 Schema 内创建`SYNONYM` 的权限。 |
| DROP ANY SYNONYM | 在除 SYS 用户外所有用户 Schema 内删除`SYNONYM` 的权限。 |
| CREATE PUBLIC SYNONYM | 创建公共 `SYNONYM` 的权限。 |
| DROP PUBLIC SYNONYM | 删除公共 `SYNONYM` 的权限。 |
| CREATE SEQUENCE | 在指定用户 Schema 内创建 `SEQUENCE` 的权限。 |
| CREATE ANY SEQUENCE | 在除 SYS 用户外所有用户 Schema 内创建`SEQUENCE` 的权限。 |
| ALTER ANY SEQUENCE | 在除 SYS 用户外所有用户 Schema 内修改`SEQUENCE` 的权限。 |
| DROP ANY SEQUENCE | 在除 SYS 用户外所有用户 Schema 内删除`SEQUENCE` 的权限。 |
| SELECT ANY SEQUENCE | 在除 SYS 用户外所有用户 Schema 内查询`SEQUENCE` 的权限。 |
| CREATE TRIGGER | 在指定用户 Schema 内创建 `TRIGGER` 的权限。 |
| CREATE ANY TRIGGER | 在除 SYS 用户外所有用户 Schema 内创建`TRIGGER` 的权限。 |
| ALTER ANY TRIGGER | 在除 SYS 用户外所有用户 Schema 内修改`TRIGGER` 的权限。 |
| DROP ANY TRIGGER | 在除 SYS 用户外所有用户 Schema 内删除`TRIGGER` 的权限。 |
| CREATE PROFILE | 创建 `PROFILE` 的权限。 |
| ALTER PROFILE | 修改 `PROFILE` 的权限。 |
| DROP PROFILE | 删除 `PROFILE` 的权限。 |
| CREATE USER | 创建用户的权限。 |
| ALTER USER | 修改用户的权限。 |
| DROP USER | 删除用户的权限。 |
| CREATE TYPE | 在指定用户 Schema 内创建 `TYPE` 的权限。 |
| CREATE ANY TYPE | 在除 SYS 用户外所有用户 Schema 内创建 `TYPE` 的权限。 |
| ALTER ANY TYPE | 在除 SYS 用户外所有用户 Schema 内修改 `TYPE` 的权限。 |
| DROP ANY TYPE | 在除 SYS 用户外所有用户 Schema 内删除 `TYPE` 的权限。 |
| EXECUTE ANY TYPE | 在除 SYS 用户外所有用户 Schema 内执行 `TYPE` 的权限。 |
| UNDER ANY TYPE | 在除 SYS 用户外所有用户 Schema 内 `TYPE` 的基础上创建 `SUBTYPE` 的权限。 |
| PURGE DBA_RECYCLEBIN | 从系统回收站中删除所有对象的权限。 |
| CREATE ANY OUTLINE | 在除 SYS 用户外所有用户 Schema 内创建`OUTLINE` 的权限。 |
| ALTER ANY OUTLINE | 在除 SYS 用户外所有用户 Schema 内修改`OUTLINE` 的权限。 |
| DROP ANY OUTLINE | 在除 SYS 用户外所有用户 Schema 内删除`OUTLINE` 的权限。 |
| SYSKM | `SYSKM` 的权限。 |
| CREATE TABLESPACE | 创建表空间的权限。 |
| ALTER TABLESPACE | 修改表空间的权限。 |
| DROP TABLESPACE | 删除表空间的权限。 |
| ALTER SYSTEM | `ALTER SYSTEM` 的权限 |
| CREATE DATABASE LINK | 在指定用户 Schema 内创建 `DATABASE LINK` 的权限。 |
| CREATE PUBLIC DATABASE LINK | 创建 `PUBLIC DATABASE LINK` 的权限。 |
| DROP DATABASE LINK | 在指定用户 Schema 内删除 `DATABASE LINK` 的权限。 |
| ALTER SESSION | 修改 `SESSION` 的权限。 |
| ALTER DATABASE | 修改 `DATABASE` 的权限。 |

## 示例

- 撤销用户 `user1` 的所有权限。

  ```sql
  obclient> REVOKE ALL PRIVILEGES FROM user1;
  Query OK, 0 rows affected

  ```
 - 撤销角色 `role1` 对表 `user1.tbl1` 的 `SELECT` 对象权限。

  ```sql
  obclient> REVOKE SELECT ON user1.tbl1 FROM role1;
  Query OK, 0 rows affected

  ```
 - 撤销用户 `user1` 和用户 `user2` 的 `DROP ANY TABLE` 系统权限。

  ```sql
  obclient> REVOKE DROP ANY TABLE FROM user1,user2;
  Query OK, 0 rows affected

  ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
