REVOKE 
===========================



描述 
-----------

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

使用说明如下：

* 用户必须拥有被撤销的权限（例如，user1 要撤销 user2 对表 t1 的 SELECT 权限，则 user1 必须拥有表 t1 的 SELECT的权限），并且拥有 GRANT OPTION权限。

* 撤销 ALL PRIVILEGES 和 GRANT OPTION 权限时，当前用户必须拥有全局 GRANT OPTION 权限，或者对权限表的UPDATE 及 DELETE 权限。

* 撤销操作不会级联。例如，用户 user1 给 user2 授予了某些权限，撤回 user1 的权限不会同时也撤回 user2 的相应权限。




格式 
-----------

```javascript
REVOKE priv_type 
     ON database.tblname 
     FROM 'username';

privilege_type:
      ALTER
    | CREATE
    | CREATE USER
    | CREATE VIEW
    | DELETE
    | DROP
    | GRANT OPTION
    | INDEX
    | INSERT
    | PROCESS
    | SELECT
    | SHOW DATABASES
    | SHOW VIEW
    | SUPER
    | UPDATE
    | USAGE
```



参数解释 
-------------



|      **参数**      |                                        **描述**                                         |
|------------------|---------------------------------------------------------------------------------------|
| priv_type        | 指定撤销的权限类型。具体的权限类型及其说明请参见下方权限类型说明表。 同时对某个用户撤销多个权限时，权限类型用","隔开。         |
| database.tblname | 指定数据库中的表。 用"\*"代替 database 或 *table_name* ，表示撤销全局权限，即撤销对数据库中所有表的操作权限。 |
| username         | 指定撤销权限的用户。同时撤销多个用户的授权时，用户名用","隔开。                                                     |



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

**权限类型说明表** 


|      **权限**       |                             **说明**                              |
|-------------------|-----------------------------------------------------------------|
| ALL PRIVILEGES    | 除GRANT OPTION以外所有权限。                                            |
| ALTER             | ALTER TABLE的权限。                                                 |
| CREATE            | CREATE TABLE的权限。                                                |
| CREATE USER       | CREATE USER，DROP   USER，RENAME USER和REVOKE ALL   PRIVILEGES的权限。 |
| CREATE TABLEGROUP | 全局CREATE TABLEGROUP的权限。                                         |
| DELETE            | DELETE的权限。                                                      |
| DROP              | DROP的权限。                                                        |
| GRANT OPTION      | GRANT OPTION的权限。                                                |
| INSERT            | INSERT的权限。                                                      |
| SELECT            | SELECT的权限。                                                      |
| UPDATE            | UPDATE的权限。                                                      |
| SUPER             | SET GLOBAL修改全局系统参数的权限。                                          |
| SHOW DATABASES    | 全局 SHOW DATABASES的权限。                                           |
| INDEX             | CREATE INDEX, DROP INDEX的权限。                                    |
| CREATE VIEW       | 创建、删除视图的权限。                                                     |
| SHOW VIEW         | SHOW CREATE VIEW权限。                                             |
| CREATE SYNONYM    | 创建同义词的权限。                                                       |




**说明**



目前没有change effective tenant 的权限控制，故 sys 租户下的用户都可以撤销权限。

示例 
-----------

执行以下命令撤销用户 obsqluser01 的所有权限。

```javascript
OceanBase(admin@TEST)>REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'obsqluser01';
Query OK, 0 rows affected (0.03 sec)
```







