一、背景
在讨论权限体系的时候,角色是一个绕不开的概念,并且大多数情况下我们的权限都是由不同的角色来承载。
Dataphin对开发过程的权限管控,主要也是通过项目来划分成员和资源,通过项目角色来配置不同的权限,因此,Dataphin内置了众多的项目角色,用于管理者进行权限管理,详见Dataphin权限体系(2):项目内角色权限体系【Dataphin V3.4】。
但是在不同客户的多样化的管控场景中,内置的固定角色偶尔会无法满足客户的管理诉求,如:
1、希望开发环境的开发者,能够看到自己的任务上线后再生产的运行情况,并能执行运维操作,如重跑失败任务、补数据等;但是不能进行任务的发布
2、希望开发环境的开发者,只能拥有任务开发和提交权限,不能拥有项目内所有数据表的查询权限,需要按需申请
3、希望生产环境的运维,只能进行任务的发布和运维操作,如重跑、补数据;但是因为生产数据非常敏感,所以不能拥有项目内生产环境表的权限
这种时候就需要用到自定义项目角色的功能,来定制符合自己企业管理要求的角色。
二、自定义项目角色Demo
1、项目角色管理
项目角色的管理入口在管理中心下方,仅超级管理员和系统管理员可以操作使用。因为Dev、Prod、Basic和标签项目(标签项目当前仅支持查看,暂不支持自定义)的权限点不同,所以需要分开进行管理。
系统角色是Dataphin内置的角色,便于客户基于一个标准的权限和角色体系快速使用,因此不能编辑系统角色的权限点,但是可以查看权限详情、查看引用、启用停用角色(其中系统管理员和访客作为默认的最高和最低权限不可停用)和克隆为自定义角色。
自定义角色跟系统角色一样,以查看权限详情、查看引用、启用停用角色和克隆为自定义角色;同时还可以编辑角色的权限点,来满足最新的权限管理诉求;需要注意的是,修改后将对所有已经使用该角色的用户生效。
2、自定义项目角色的权限点
新建自定义角色时或者编辑已有的自定义角色时,可以自定义当前角色的权限点,可以定制的内容包括下面的内容:
1、规划:包括是否可以管理项目内的成员、是否可以配置业务实体等
2、集成:数据集成相关功能的查看和开发权限
3、开发:数据开发相关功能的查看和开发权限
4、资产:是否可以通过角色获取当前项目内数据资产(如物理表、逻辑表)的各种权限(读表数据、改表数据等),这也是需要定制的关键点,建议按需配置。
5、发布运维:涉及到是否可以发布,是否可以使用运维相关功能的权限。这里需要特殊说明的是dev项目角色的运维功能,单指在dev环境的运维模块进行操作;如果想要操作自己的已上线的任务,需要在prod项目有运维相关的权限。
3、批量修改用户的项目角色
在按照业务需求,完成自定义角色的配置之后,接下来就需要替换成员的原有角色了,除了单个用户替换之外,还提供了下面两种批量替换项目角色的方法
1、在管理中心,如果老的角色确认不用,可以进行停用,停用后可以将所有项目角色是当前角色的用户,统一修改为新的角色
2、在项目的成员管理页面,可以多选用户,然后批量替换为新角色
三、使用说明
1、自定义角色使用举例
再回到开头说的三个问题,以这三种情况举例,我们看下分别需要如何自定义角色:
1、希望开发环境的开发者,能够看到自己的任务上线后再生产的运行情况,并能执行运维操作,如重跑失败任务、补数据等;但是不能进行任务的发布
这种情况,我们只要克隆Prod环境的项目访客角色,然后对应的增加上运维操作的权限,然后把Dev的开发者加到对应的Prod项目即可实现该需求
2、希望开发环境的开发者,只能拥有任务开发和提交权限,不能拥有项目内所有数据表的查询权限,需要按需申请
这种情况,我们只要克隆Dev环境的开发者角色,然后取消项目资产权限的权限点,然后替换成员的原有开发者角色即可实现该需求
3、希望生产环境的运维,只能进行任务的发布和运维操作,如重跑、补数据;但是因为生产数据非常敏感,所以不能拥有项目内生产环境表的权限
这种情况,我们只要克隆Prod环境的运维角色,然后取消项目资产权限的权限点,然后替换成员的原有运维角色即可实现该需求
2、使用限制
自定义项目角色仅能对角色能使用的整体权限进行控制,并不能控制该角色有哪些表的权限,如果需要更精细的控制,可能需要结合其他功能一起实现。
以上就是本次自定义项目角色介绍的全部内容,更多权限的历史内容,详见:
Dataphin权限体系(1):权限体系介绍与角色权限【视频】
Dataphin权限体系(2):项目内角色权限体系【Dataphin V3.4】