数据安全性是每个公司在构建数据时都会考虑的一个关键问题。如何避免人员调整带来的数据规则变化,减少数据管控阶段的工作量,增加严谨性,才是用户真正的诉求和痛点。
在权限管理层面,永比将用户的相关信息封装成参数,可直接应用于数据预处理和报表制作阶段。既满足了大量场景下的数据权限控制,又在一定程度上避免了“人员调整”导致的数据规则手动修改。
这一次,我们将在一个双重数据规则限制场景下,详细说明相关的操作和实现效果。
一、权限要求场景
1.员工登录BI系统,①根据岗位(岗位a/岗位b & # 8230…),确定工作属性;②根据员工所在部门(部门A/部门B……),确定部门属性;通过双重限制许可条件实现数据过滤;
2.如果员工A是岗位A,部门A,可以在表1的数据表中“岗位A”一栏看到值为“部门A”的数据记录;
3.如果员工A是岗位B,部门B,那么在表1的数据表中“岗位B”一栏可以看到值为“部门B”的数据记录。
表1数据表
项目日期事业线A岗B岗CRM商机号PMS项目编号主项目名称项目类型项目经理客户经理2021/1/1事业线A部门A部门BCRM001PMS010甲优质A类A张三2021/2/1事业线A部门B部门BCRM002PMS020乙优质A类AAA李四2021/3/1事业线A部门C部门ACRM00***MS030丙良好B类A张三2021/4/1事业线A部门C部门ACRM004PMS040丁良好B类B李四2021/5/1事业线B部门B部门ACRM005PMS050戊劣质C类AAA张三2021/6/1事业线B部门A部门BCRM006PMS060己劣质C类B李四2021/7/1事业线B部门B部门BCRM007PMS070庚良好B类AA张三2021/8/1事业线C部门C部门ACRM008PMS080辛劣质C类A李四2021/9/1事业线C部门A部门CCRM009PMS090壬优质A类B张三2021/10/1事业线C部门A部门ACRM010PMS100癸良好B类A李四
二。场景实现
1.数据导入
将表1中数据表的数据导入数据集。图1使用SQL数据集来创建数据集。(本例使用MySQL版本mysql5.7.18数据库)
图1数据表导入
2.报告生产
根据表1中的数据表制作一维报表,图2使用该表制作报表图表组件。
图2一维表格制作
3.用户配置
添加4个用户,3个组,2个角色,配置权限关系。表2使用通过身份验证和授权导出的用户信息。
2表用户信息
Admin1权限配置,配置所有模块的读写权限,用于设置后续权限过滤。
可以配置三个测试用户(test1、test2、test3)的权限,可以配置相关的模块和操作权限,如图3所示。图3显示了角色权限信息的配置结果。
图3权限配置
4.权限过滤
Admin1登录BI,通过数据集的SQL编辑实现权限配置逻辑。图4是用于改变数据集“表1数据集”的查询语句。
逻辑实现:用户登录后,识别角色,确定通过哪个列过滤,然后识别分组,确定过滤列的过滤值。
SQL语句:
select * from date1
其中1=0或
情况
什么时候?{ _ ROLES _ } = & # 8221一”然后一个帖子在(?{_GROUPS_})
什么时候?{ _ ROLES _ } = & # 8221B”然后B在(?{_GROUPS_})
else 1=0
目标
图4逻辑实现
三。场景实现效果
1.用户test1(帖子a;a)部门登录,结果如图5所示。
图5 test1登录结果
2.用户测试2(岗位B;b)部门登录,结果如图6所示。
图6 test2登录结果
3.用户测试3(岗位A;c)部门登录,结果如图7所示。
图7 test3登录结果
该场景实现了对不同权限用户的数据过滤。核心逻辑是:根据第一个属性值,得到判断条件列;根据第二属性值,获取条件列的筛选结果值;在双重约束下,实现了数据记录的条件过滤。
本文来自柠檬琉璃夏投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/482904.html