1. 背景
在Dataphin中,项目是用于划分不同团队工作区域的基础单元,不同团队各建项目,通过表授权互通数据,边界清晰、审计简单。但是在一些场景中,项目管理员也会期望对项目内的任务进行二次权限划分,用于更精细的权限管控。例如:
- 保护核心数据和核心代码。核心数据不可出域,需要在指定项目下进行查询和使用、保护核心代码,仅指定开发者客户开发和运维;
- 项目对应着企业的二级子公司,子公司的不同部门会在同一个项目中进行数据开发,此时需要按照部门进行权限管控。
这类诉求并非个例,Dataphin 在 V6.2.0 中给出了答案:目录权限管控。
2. 功能介绍
2.1 总开关:管理中心统一启停
入口:管理中心 → 系统设置 → 研发平台 → 目录权限
功能 |
说明 |
默认状态 |
关闭(历史客户升级后的默认行为,行为无任何变化) |
开启后 |
支持在计算任务中对一级目录配置可见范围(公开 / 仅指定成员可见),用于控制目录及其下任务的可见性,仅对离线计算任务生效 |
2.2 权限点:谁有资格分配权限
在项目角色中新增权限点 【数据管理-目录权限管理】,默认由项目管理员持有,也可授予自定义项目角色,拥有该权限点的项目角色可以对项目内的目录进行权限设置。
2.3 可见设置:目录级的可见性与管理员
在离线计算任务的一级目录上,新增"权限管理"操作,配置两类信息:
1)可见设置(二选一)
- 公开:所有项目成员均可查看当前目录下的任务;
- 仅指定成员可见:仅拥有【数据管理-目录权限管理】权限的项目角色、目录管理员及指定的可见成员可查看当前目录下的离线任务,其他成员在研发、运维、发布中均不可见目录下的任务。
历史目录在升级后默认选中"公开",可随时切换为"仅指定成员可见"。此管控针对实时任务不生效。
2)目录管理员与可见成员
- 目录管理员:支持多选当前项目下的成员。可管理当前目录,包括修改可见设置和设置可见成员。可见设置为"公开"时非必填;
- 可见成员:仅在“仅指定成员可见”时出现,支持多选个人账号与用户组。
2.4 全链路生效:研发、运维、发布
权限管控真正的难点不在配置界面,而在每一条能看到任务的路径都要被覆盖。以下是三大环节的行为定义。
2.4.1 研发
- 计算任务树:用户仅可见自己有查看权限的目录及其下任务(含公开目录与有可见权限的非公开目录);
- 计算任务列表:仅展示用户有权限的任务;
- 运行记录:出于性能考虑展示全量任务,当用户对无权限任务执行操作(查看代码、查看日志等)时给出明确指引式报错。
2.4.2 运维
- 任务列表新增"目录"字段:展示从根目录到末级的完整路径,任务移动目录时同步更新;
- 目录筛选:新增"所在目录"筛选项,按集成任务、计算任务、数据归集、工作流四个根节点组织。该筛选需先选中单个项目,多选或未选项目时置灰提示;仅【集成和计算任务】Tab 提供目录筛选(建模任务无此维度);
- 实例列表:新增目录字段与目录筛选。实例上的目录信息是生成时的快照,不随任务后续移动而变更;
- 可见性策略:任务列表仅展示有权限的任务;实例出于性能考虑全量展示,点击无权限实例时按统一文案报错;
- DAG 图:展示完整 DAG 以保证链路完整性,但操作时校验权限。
2.4.3 发布
- 历史发布项对项目内所有成员公开,但是点击无权限目录下的任务时会按统一文案报错;
- 新生成的发布项携带目录信息,同为生成时的快照,任务移动目录后发布项不会同步改。