策略授权参考
本章节介绍DLI基于角色授权场景下支持的策略授权项。
支持的授权项
策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下:
- 权限:允许或拒绝对指定资源在特定条件下进行某项操作。
- 对应API接口:自定义策略实际调用的API接口。
- 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。
- 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。
- IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。
关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。

“√”表示支持,“x”表示暂不支持。
DLI支持自定义策略授权项如下表所示。
权限 | 对应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 | √ | × |

