
# 策略授权参考
本章节介绍DLI基于角色授权场景下支持的策略授权项。
#### 支持的授权项
策略包含系统策略和自定义策略，如果系统策略不满足授权要求，管理员可以创建自定义策略，并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应，授权项列表说明如下：
- 权限：允许或拒绝对指定资源在特定条件下进行某项操作。
- 对应API接口：自定义策略实际调用的API接口。
- 授权项：自定义策略中支持的Action，在自定义策略中的Action中写入授权项，可以实现授权项对应的权限功能。
- 依赖的授权项：部分Action存在对其他Action的依赖，需要将依赖的Action同时写入授权项，才能实现对应的权限功能。
- IAM项目(Project)/企业项目(Enterprise Project)：自定义策略的授权范围，包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目，表示此授权项对应的自定义策略，可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目，不支持企业项目，表示仅能在IAM中给用户组授权并生效，如果在企业管理中授权，则该自定义策略不生效。 关于IAM项目与企业项目的区别，详情请参见：[IAM与企业管理的区别](https://support.huaweicloud.com/iam_faq/iam_01_0101.html)。
  
![](https://support.huaweicloud.com/api-dli/public_sys-resources/note_3.0-zh-cn.png)
"√"表示支持，"x"表示暂不支持。
DLI支持自定义策略授权项如下表所示。
表1API授权项列表 
| 权限                | 对应API接口                                                                      | 授权项                                     | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 创建队列              | POST /v1.0/{project_id}/queues                                               | dli:queue:createQueue                   | √                                           | √                                                       |
| 删除队列              | DELETE /v1.0/{project_id}/queues/{queue_name}                                | dli:queue:dropQueue                     | √                                           | √                                                       |
| 提交作业              | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:queue:submitJob                     | √                                           | ×                                                       |
| 取消作业              | DELETE /v1.0/{project_id}/jobs/{job_id}                                      | dli:queue:cancelJob                     | √                                           | ×                                                       |
| 查看其他用户具备的队列权限     | GET /v1.0/{project_id}/queues/{queue_name}/users                             | dli:queue:showPrivileges                | √                                           | ×                                                       |
| 重启队列              | PUT /v1.0/{project_id}/queues/{queue_name}/action                            | dli:queue:restart                       | √                                           | ×                                                       |
| 扩缩容队列             | PUT /v1.0/{project_id}/queues/{queue_name}/action                            | dli:queue:scaleQueue                    | √                                           | ×                                                       |
| 赋予指定用户弹性资源池权限     | PUT /v1.0/{project_id}/user-authorization                                    | dli:elasticresourcepool:grantPrivilege  | √                                           | ×                                                       |
| 移除指定用户弹性资源池权限     | PUT /v1.0/{project_id}/user-authorization                                    | dli:elasticresourcepool:revokePrivilege | √                                           | ×                                                       |
| 创建数据库             | POST /v1.0/{project_id}/databases                                            | dli:database:createDatabase             | √                                           | ×                                                       |
| 删除数据库             | DELETE /v1.0/{project_id}/databases/{database_name}                          | dli:database:dropDatabase               | √                                           | ×                                                       |
| 修改数据库配置           | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:database:alterDatabaseProperties    | √                                           | ×                                                       |
| 将SQL语句解释为执行计划     | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:explain                    | √                                           | ×                                                       |
| 创建表               | POST /v1.0/{project_id}/databases/{database_name}/tables                     | dli:database:createTable                | √                                           | ×                                                       |
| 创建视图              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:createView                 | √                                           | ×                                                       |
| 创建函数              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:createFunction             | √                                           | ×                                                       |
| 描述函数              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:describeFunction           | √                                           | ×                                                       |
| 删除函数              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:dropFunction               | √                                           | ×                                                       |
| 显示函数              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:showFunctions              | √                                           | ×                                                       |
| 创建角色              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:createRole                 | √                                           | ×                                                       |
| 删除角色              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:dropRole                   | √                                           | ×                                                       |
| 显示角色              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:showRoles                  | √                                           | ×                                                       |
| 显示所有角色            | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:showAllRoles               | √                                           | ×                                                       |
| 绑定角色              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:grantRole                  | √                                           | ×                                                       |
| 解除角色绑定            | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:revokeRole                 | √                                           | ×                                                       |
| 显示所有角色和用户的绑定关系    | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:database:showUsers                  | √                                           | ×                                                       |
| 查看其他用户具备的数据库权限    | GET /v1.0/{project_id}/databases/{database_name}/users                       | dli:database:showPrivileges             | √                                           | ×                                                       |
| 显示数据库             | GET /v1.0/{project_id}/databases                                             | dli:database:displayDatabase            | √                                           | ×                                                       |
| 显示所有数据库           | GET /v1.0/{project_id}/databases                                             | dli:database:displayAllDatabases        | √                                           | ×                                                       |
| 显示所有表             | GET /v1.0/{project_id}/databases                                             | dli:database:displayAllTables           | √                                           | ×                                                       |
| 赋予指定用户数据库权限       | PUT /v1.0/{project_id}/user-authorization                                    | dli:database:grantPrivilege             | √                                           | ×                                                       |
| 移除指定用户数据库权限       | PUT /v1.0/{project_id}/user-authorization                                    | dli:database:revokePrivilege            | √                                           | ×                                                       |
| 删除表               | DELETE /v1.0/{project_id}/databases/{database_name}/tables/{table_name}      | dli:table:dropTable                     | √                                           | ×                                                       |
| 显示表结构             | POST /v1.0/{project_id}/jobs/submit-job，执行对应SQL                              | dli:table:describeTable                 | √                                           | ×                                                       |
| 查询表               | GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview | dli:table:select                        | √                                           | ×                                                       |
| 显示表配置             | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:showTableProperties           | √                                           | ×                                                       |
| 显示建表语句            | GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview | dli:table:showCreateTable               | √                                           | ×                                                       |
| 显示所有分区            | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:showPartitions                | √                                           | ×                                                       |
| 设置表配置             | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:alterTableSetProperties       | √                                           | ×                                                       |
| 添加列               | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:alterTableAddColumns          | √                                           | ×                                                       |
| 在分区表中添加分区         | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:alterTableAddPartition        | √                                           | ×                                                       |
| 重命名表分区            | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:alterTableRenamePartition     | √                                           | ×                                                       |
| 删除分区表的分区          | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:alterTableDropPartition       | √                                           | ×                                                       |
| 恢复表分区             | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:alterTableRecoverPartition    | √                                           | ×                                                       |
| 重命名表              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:alterTableRename              | √                                           | ×                                                       |
| 设置分区路径            | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:alterTableSetLocation         | √                                           | ×                                                       |
| 插入表数据             | POST /v1.0/{project_id}/jobs/submit-job，语句调用                                 | dli:table:insertIntoTable               | √                                           | ×                                                       |
| 重写表数据             | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:insertOverwriteTable          | √                                           | ×                                                       |
| 查看其他用户具备的表权限      | GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/users   | dli:table:showPrivileges                | √                                           | ×                                                       |
| 清空表               | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:table:truncateTable                 | √                                           | ×                                                       |
| 更新表               | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:table:update                        | √                                           | ×                                                       |
| 删除表数据             | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:table:delete                        | √                                           | ×                                                       |
| 修改列信息             | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:table:alterTableChangeColumn        | √                                           | ×                                                       |
| 删除列               | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:table:alterTableDropColumns         | √                                           | ×                                                       |
| 显示数据段             | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:table:showSegments                  | √                                           | ×                                                       |
| 合并数据段             | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:table:compaction                    | √                                           | ×                                                       |
| 修改视图              | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:table:alterView                     | √                                           | ×                                                       |
| 显示表结构             | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:table:describeTable                 | √                                           | ×                                                       |
| 赋予指定用户数据表权限       | PUT /v1.0/{project_id}/user-authorization                                    | dli:table:grantPrivilege                | √                                           | ×                                                       |
| 移除指定用户数据表权限       | PUT /v1.0/{project_id}/user-authorization                                    | dli:table:revokePrivilege               | √                                           | ×                                                       |
| 批量添加资源标签          | POST /v3/{project_id}/{resource_type}/{resource_id}/tags/create              | dli::tagResource                        | √                                           | √                                                       |
| 批量删除资源标签          | POST /v3/{project_id}/{resource_type}/{resource_id}/tags/delete              | dli::unTagResource                      | √                                           | √                                                       |
| 查询资源实例数量          | POST /v3/{project_id}/{resource_type}/resource-instances/count               | dli::listResourcesByTag                 | √                                           | ×                                                       |
| 查询资源实例列表          | POST /v3/{project_id}/{resource_type}/resource-instances/filter              | dli::listResourcesByTag                 | √                                           | ×                                                       |
| 查询指定资源类型的标签信息     | GET /v3/{project_id}/{resource_type}/tags                                    | dli::listTags                           | √                                           | ×                                                       |
| 查询指定资源实例的标签信息     | GET /v3/{project_id}/{resource_type}/{resource_id}/tags                      | dli::listTagsForResource                | √                                           | √                                                       |
| 查看其它用户的安全认证信息权限列表 | GET /v1.0/{project_id}/datasource/auth-infos/{auth_name}/users               | dli:datasourceauth:showPrivileges       | √                                           | ×                                                       |
| 使用安全认证信息          | POST /v1.0/{project_id}/jobs/submit-job                                      | dli:datasourceauth:useAuth              | √                                           | ×                                                       |
| 删除安全认证信息          | DELETE /v2.0/{project_id}/datasource/auth-infos/{auth_info_name}             | dli:datasourceauth:dropAuth             | √                                           | ×                                                       |
| 更新安全认证信息          | PUT /v2.0/{project_id}/datasource/auth-infos                                 | dli:datasourceauth:updateAuth           | √                                           | ×                                                       |
| 赋予指定用户安全认证权限      | PUT /v1.0/{project_id}/user-authorization                                    | dli:datasourceauth:grantPrivilege       | √                                           | ×                                                       |
| 移除指定用户安全认证权限      | PUT /v1.0/{project_id}/user-authorization                                    | dli:datasourceauth:revokePrivilege      | √                                           | ×                                                       |
| 移除指定用户作业权限        | PUT /v1.0/{{project_id}}/authorization                                       | dli:jobs:revokePrivilege                | √                                           | ×                                                       |
| 查询列               | POST /v1.0/{project_id}/jobs/submit-job，SQL语句调用                              | dli:column:select                       | √                                           | ×                                                       |
| 赋予指定用户列权限         | PUT /v1.0/{project_id}/user-authorization                                    | dli:column:grantPrivilege               | √                                           | ×                                                       |
| 移除指定用户列权限         | PUT /v1.0/{project_id}/user-authorization                                    | dli:column:revokePrivilege              | √                                           | ×                                                       |
| 查询flink作业列表       | GET /v1.0/{project_id}/streaming/jobs                                        | dli:jobs:listAll                        | √                                           | ×                                                       |
| 查询flink作业详情       | GET /v1.0/{project_id}/streaming/jobs/{job_id}                               | dli:jobs:get                            | √                                           | ×                                                       |
| 创建flink SQL作业     | POST /v1.0/{project_id}/streaming/sql-jobs                                   | dli:jobs:create                         | √                                           | ×                                                       |
| 创建flinkJar作业      | POST /v1.0/{project_id}/streaming/flink-jobs                                 | dli:jobs:create                         | √                                           | ×                                                       |
| 更新flinkSQL作业      | PUT /v1.0/{project_id}/streaming/sql-jobs/{job_id}                           | dli:jobs:update                         | √                                           | ×                                                       |
| 更新flinkJar作业      | PUT /v1.0/{project_id}/streaming/flink-jobs/{job_id}                         | dli:jobs:update                         | √                                           | ×                                                       |
| 删除flink作业         | DELETE /v1.0/{project_id}/streaming/jobs/{job_id}                            | dli:jobs:delete                         | √                                           | ×                                                       |
| 批量运行flink作业       | POST /v1.0/{project_id}/streaming/jobs/run                                   | dli:jobs:start                          | √                                           | ×                                                       |
| 停止flink作业         | POST /v1.0/{project_id}/streaming/jobs/{job_id}/stop                         | dli:jobs:stop                           | √                                           | ×                                                       |
   
