-
xxxl 数据领袖Lv6
发表于2020-7-31 11:37
楼主
本帖最后由 xxxl 于 2020-9-9 16:03 编辑
1.需求描述
我们在设置用户权限的时候常常有这样的需求,需要用户权限依据具体维度不同来改变权限不同,比如有一个地区维度需要用户A拥有查看地区A的权限,而用户B拥有查看地区B的权限。于是我们就需要用到了数据维级次的权限来完成这样的需求。
2.数据级次权限操作步骤
1)首先我们需要在主题集属性(给主题域属性也可以)中进行配置(这一步也可以不做,具体详解见注意事项);
2)接下来在用户权限中给主题域,主题集,主题表,主题表分组,分析表,分析表分组都可以设置设置数据级次权限,
这里我们还可以选择对不同的维表进行数据级次权限的设置;
3)我们还可以自定义过滤条件。比如希望不同机构下的用户,以及相同机构下不同用户,进入相同的分析表看数据时,参数下拉框看到只属于对应机构用户的数据。
需要根据机构用户建立一个维表,在主题集或主题域将此维表设置成数据级次维。同时在用户权限中,设置数据级次-自定义过滤条件,
3.补充
在设置数据权限的时候,我们还可以利用用户属性来设置,也就是在2.2)之后我们对于已经设好权限的用户在高级中修改一下。
注意这里参数的写法='EDIM$35$80e6317689a04b7a88f8e272e3108b76$行政区划$'+login.user.email
如果需要在报表中添加一个行政区划参数,并且要求,参数列表只能显示用户权限范围内的地址,可以在报表中添加“单位级次下拉框”
再次使用a用户登录系统,查看数据,可以看到行政区划参数的下拉列表中只显示出了“河北省”地区
例如有如下的通用维
需要取到奥拓则需要写代码值“0E$01D$0101C$010102B”
1.需求描述
我们在设置用户权限的时候常常有这样的需求,需要用户权限依据具体维度不同来改变权限不同,比如有一个地区维度需要用户A拥有查看地区A的权限,而用户B拥有查看地区B的权限。于是我们就需要用到了数据维级次的权限来完成这样的需求。
2.数据级次权限操作步骤
1)首先我们需要在主题集属性(给主题域属性也可以)中进行配置(这一步也可以不做,具体详解见注意事项);
2)接下来在用户权限中给主题域,主题集,主题表,主题表分组,分析表,分析表分组都可以设置设置数据级次权限,
这里我们还可以选择对不同的维表进行数据级次权限的设置;
3)我们还可以自定义过滤条件。比如希望不同机构下的用户,以及相同机构下不同用户,进入相同的分析表看数据时,参数下拉框看到只属于对应机构用户的数据。
需要根据机构用户建立一个维表,在主题集或主题域将此维表设置成数据级次维。同时在用户权限中,设置数据级次-自定义过滤条件,
形如:
"EDIM$35$18042a93b6024719918db44bbe5cf0fd$行政区划$"+login.id
按用户对应在维表的维项id
"EDIM$35$18042a93b6024719918db44bbe5cf0fd$行政区划$"+login.org.id
按用户所在的机构对应在维表的维项id
3.补充
在设置数据权限的时候,我们还可以利用用户属性来设置,也就是在2.2)之后我们对于已经设好权限的用户在高级中修改一下。
注意这里参数的写法='EDIM$35$80e6317689a04b7a88f8e272e3108b76$行政区划$'+login.user.email
其中:我们在上一步勾选地区后,系统自动生成的参数值为:
EDIM$35$7eef7e225ca5448192dddf3775290c73$行政区划$000000
我们需要将其修改为:
='EDIM$35$7eef7e225ca5448192dddf3775290c73$行政区划$'+login.user.email
示例中使用了login.user.email属性,这是因为示例中用户的机构id与地区维表中的地区id并不匹配。所以我们在用户的邮箱属性中,单独维护了用户所在机构的值进去。
参数写法的含义是让用户查看数据的权限与login.user.email字段的值相匹配。
如果客户的机构id和地区维表的值相匹配,那么这里可以写成
='EDIM$35$7eef7e225ca5448192dddf3775290c73$行政区划$'+login.orgid
用a用户登录系统,计算报表会发现,系统自动按照用户的权限查询出了数据如果需要在报表中添加一个行政区划参数,并且要求,参数列表只能显示用户权限范围内的地址,可以在报表中添加“单位级次下拉框”
再次使用a用户登录系统,查看数据,可以看到行政区划参数的下拉列表中只显示出了“河北省”地区
4.注意事项
最后有几点我们需要注意一下:
1)数据级次生效按照“就近原则“,即越靠近报表优先级越高(报表自身优先级最高,报表分组次之,以此类推),并且找到了数据级次权限就不会在继续找。
2)对于easyolap自身设置数据级次是不生效的。对于easyolap 要设置数据级次的话要在主题集和主题集往上设置 。
3)新建报表时,如果他的主题集设置了数据级次维,就要设置该维的数据级次权限,否则会提示没有数据级次权限。
4)不在主题集设置数据级次维,在权限里设置数据级次维就可以不受限制。
5)如果计算结果显示不明显的,可以查看计算详细信息的sql。
6)补充中在用户属性里设置的"130000"的值是针对层级维设置的,如果使用的是通用维需要设置赋值,需要用到$分割不同层级节点。例如有如下的通用维
需要取到奥拓则需要写代码值“0E$01D$0101C$010102B”
11个回答
我的意思是对同一个用户,多张主题表或者分析表进行批量添加,不是同一个主题表多个数据级次的限制
为什么我设置了维过滤,报表只是过滤了查询结果。维下拉里面还是有未设置权限的节点。
chenying 发表于 2020-8-26 17:17
单位级次下拉能用维表吗
是的,如果不想做数据级次下拉可以试试普通维做数据维级次效果看这个帖子https://bbs.esensoft.com/thread-137016-1-1.html
xxxl 发表于 2020-8-26 17:19
是的,如果不想做数据级次下拉可以试试普通维做数据维级次效果看这个帖子https://bbs.esensoft.com/threa ...
嗯嗯。我看到了。本来准备试试你这个帖子说的这个方法。但是你说的单位级次下拉好像不能用维表。只能手动设置节点
AlexisP 发表于 2020-8-6 10:57
我的意思是对同一个用户,多张主题表或者分析表进行批量添加,不是同一个主题表多个数据级次的限制 ...
请问这个问题解决了吗,有没有批量添加的方法?