在实际的数据分析中,为了数据安全考虑,企业只会对某些角色赋于引用、查看数据的权限,另外一些角色则没有权限。
3个选项必须要开启:
## 原生SQL数据集数据权限
## 原生SQL数据集数据权限 ,系统默认值false
RAW_SQL_APPLY_ROW_PERMISSIONS=true
## 原生SQL数据集资源权限
## 原生SQL数据集资源权限,系统默认值false
RAW_SQL_APPLY_ROW_PERMISSIONS_CHECK_TABLE=true
## 原生SQL数据集脱敏规则
## 原生SQL数据集脱敏规则,系统默认值false
RAW_SQL_APPLY_MASKING_RULE=true
为了方便讲解示例,先创建一个用户:VerifyUser 密码是1 ,角色:VeriyRole,再给VerifyUser 分配了角色:VeriyRole;如何创建用户、角色可查看:用户管理。
设置操作权限:
1 示例:对某个"表"没有查看、引用权限示例
1、创建了一个演示使用的northwind 库,并通过"数据库管理” ,选择”products“、”categories“、”orders“、”orderdetails“
2、使用admin(有权限的账号,这里为了演示说明用admin) 账号,给”products“设置资源授权;打开资源授权页面可以看到直接从父节点继承了权限,有一个EveryOne的角色,需要把它删除掉,删除操作方式如下:
删除掉的效果,确保VeriyRole不在里面,即VeriyRole角色对”products“没有引用、查看权限:
3、确认好权限之后,使用VerifyUser 用户登录,并去创建数据模型,添加 SQL查询,在SQL查询中,查询”products“表:
执行、保存时会提示:没有查看权限。
2 示例:针对表中字段没有引用、查看权限(列权限)
1、基于示例1 添加的”categories“表,通过表的设置资源授权,确认”VerifyUser“用户否有引用、查看权限:
表有权限之后,再确认”categoryName“字段是否有引用、查看权限,如果有的话要把”VerifyUser“从列表中删除:
2、确认好权限之后,使用VerifyUser 用户登录,使用去创建数据模型,添加 SQL查询,在SQL查询中查询”categories“表:
执行时:会提示对”categoryName“没有引用权限;但是可以保存成功。
保存成功之后,在数据模型预览或再报表层查看效果:
3 示例:SQL查询能继承源表"字段"设置的脱敏规则
1、使用admin(有操作权限的账号即可,这里为了演示说明用admin) 账号登录,基于示例1 添加的”orderdetails“表创建脱敏规则,脱敏规则创建,详情可查看:详情:
创建脱敏规则,需要选择数据源下面”Quantity“字段,设置脱敏算法为:*;并且应用范围,设置为用户VerifyUser 试用于此范围,保存。
2、创建好脱敏规则之后,使用VerifyUser 用户登录,使用去创建数据模型,添加 SQL查询,在SQL查询中查询”orderdetails”表
执行成功之后,可以看到Quantity字段变成了*,无法查看它真实的数据。