
# 数据权限列表
DLI中SQL语句与数据库、表、角色相关的权限矩阵如[表1]所示。
 表1权限矩阵 
| 分类              | SQL语句                                | 权限                                                | 说明             |
|:---|:---|:---|:---|
| Database        | DROP DATABASE db1                    | database.db1的DROP_DATABASE权限                      | -              |
| Database        | CREATE TABLE tb1(...)                | database.db1的CREATE_TABLE权限                       | -              |
| Database        | CREATE VIEW v1                       | database.db1的CREATE_VIEW权限                        | -              |
| Database        | EXPLAIN query                        | database.db1的EXPLAIN权限                            | query需要其相应的权限。 |
| Table           | SHOW CREATE TABLE tb1                | database.db1.tables.tb1的SHOW_CREATE_TABLE权限       | -              |
| Table           | DESCRIBE \[EXTENDED\|FORMATTED\] tb1 | databases.db1.tables.tb1的DESCRIBE_TABLE权限         | -              |
| Table           | DROP TABLE \[IF EXISTS\] tb1         | database.db1.tables.tb1的DROP_TABLE权限              | -              |
| Table           | SELECT \* FROM tb1                   | database.db1.tables.tb1的SELECT权限                  | -              |
| Table           | SELECT count(\*) FROM tb1            | database.db1.tables.tb1的SELECT权限                  | -              |
| Table           | SELECT \* FROM view1                 | database.db1.tables.view1的SELECT权限                | -              |
| Table           | SELECT count(\*) FROM view1          | database.db1.tables.view1的SELECT权限                | -              |
| Table           | LOAD DLI TABLE                       | database.db1.tables.tb1的INSERT_INTO_TABLE权限       | -              |
| Table           | INSERT INTO TABLE                    | database.db1.tables.tb1的INSERT_INTO_TABLE权限       | -              |
| Table           | INSERT OVERWRITE TABLE               | database.db1.tables.tb1的INSERT_OVERWRITE_TABLE权限  | -              |
| Table           | ALTER TABLE ADD COLUMNS              | database.db1.tables.tb1的ALTER_TABLE_ADD_COLUMNS权限 | -              |
| Table           | ALTER TABLE RENAME                   | database.db1.tables.tb1的ALTER_TABLE_RENAME权限      | -              |
| ROLE\&PRIVILEGE | CREATE ROLE                          | db的CREATE_ROLE权限                                  | -              |
| ROLE\&PRIVILEGE | DROP ROLE                            | db的DROP_ROLE权限                                    | -              |
| ROLE\&PRIVILEGE | SHOW ROLES                           | db的SHOW_ROLES权限                                   | -              |
| ROLE\&PRIVILEGE | GRANT ROLES                          | db的GRANT_ROLE权限                                   | -              |
| ROLE\&PRIVILEGE | REVOKE ROLES                         | db的REVOKE_ROLE权限                                  | -              |
| ROLE\&PRIVILEGE | GRANT PRIVILEGE                      | db或table的GRANT_PRIVILEGE权限                        | -              |
| ROLE\&PRIVILEGE | REVOKE PRIVILEGE                     | db或table的REVOKE_PRIVILEGE权限                       | -              |
| ROLE\&PRIVILEGE | SHOW GRANT                           | db或table的SHOW_GRANT权限                             | -              |
   
Privilege在进行数据库和表赋权或回收权限时，DLI支持的权限类型如下所示。
- DATABASE上可赋权/回收的权限：
  - DROP_DATABASE（删除数据库）
  
  - CREATE_TABLE（创建表）
  
  - CREATE_VIEW（创建视图）
  
  - EXPLAIN（将SQL语句解释为执行计划）
  
  - CREATE_ROLE（创建角色）
  
  - DROP_ROLE（删除角色）
  
  - SHOW_ROLES（显示角色）
  
  - GRANT_ROLE（绑定角色）
  
  - REVOKE_ROLE（解除角色绑定）
  
  - DESCRIBE_TABLE（描述表）
  
  - DROP_TABLE（删除表）
  
  - SELECT（查询表）
  
  - INSERT_INTO_TABLE（插入）
  
  - INSERT_OVERWRITE_TABLE（重写）
  
  - GRANT_PRIVILEGE（数据库的赋权）
  
  - REVOKE_PRIVILEGE（数据库权限的回收）
  
  - SHOW_PRIVILEGES（查看其他用户具备的数据库权限）
  
  - ALTER_TABLE_ADD_PARTITION（在分区表中添加分区）
  
  - ALTER_TABLE_DROP_PARTITION（删除分区表的分区）
  
  - ALTER_TABLE_RENAME_PARTITION（重命名表分区）
  
  - ALTER_TABLE_RECOVER_PARTITION（恢复表分区）
  
  - ALTER_TABLE_SET_LOCATION（设置分区的路径）
  
  - SHOW_PARTITIONS（显示所有分区）
  
  - SHOW_CREATE_TABLE（查看建表语句）
   
- TABLE上可以赋权/回收的权限：
  - DESCRIBE_TABLE（描述表）
  
  - DROP_TABLE（删除表）
  
  - SELECT（查询表）
  
  - INSERT_INTO_TABLE（插入）
  
  - INSERT_OVERWRITE_TABLE（重写）
  
  - GRANT_PRIVILEGE（表的赋权）
  
  - REVOKE_PRIVILEGE（表权限的回收）
  
  - SHOW_PRIVILEGES（查看其他用户具备的表权限）
  
  - ALTER_TABLE_ADD_COLUMNS（增加列）
  
  - ALTER_TABLE_RENAME（重命名表）
  
  - ALTER_TABLE_ADD_PARTITION（在分区表中添加分区）
  
  - ALTER_TABLE_DROP_PARTITION（删除分区表的分区）
  
  - ALTER_TABLE_RENAME_PARTITION（重命名表分区）
  
  - ALTER_TABLE_RECOVER_PARTITION（恢复表分区）
  
  - ALTER_TABLE_SET_LOCATION（设置分区的路径）
  
  - SHOW_PARTITIONS（显示所有分区）
  
  - SHOW_CREATE_TABLE（查看建表语句）
   
 
