如何实现数据权限达到如下效果

9157
9

红颜为谁醉 初学数据Lv2

发表于2018-6-21 09:36

悬赏1

已解决

楼主
如何实现数据权限达到如下效果:行政区划维表,分配了北京权限,在报表中为下拉,只出来北京的内容

最近看过此主题的会员

esen_4ULEC5X5OS

13998467245

ligaopeng

勇敢向前

xzm

hjg

Yuuuu

最佳答案
一、获取用户(机构)的属性
在BI中通过设置数据级次维可以实现按照用户的组织机构或其他维度来为用户分配数据权限,通常情况下数据级次维需要与用户(或机构)的属性结合使用。
用户(或机构)在系统中有内置的属性,例如用户id,用户名,用户所在机构id,用户所在机构名称等,也可以在系统中添加用户自定义属性。如何获取用户的这些属性呢?BI为我们提供了登录者对象login。login对象有一些固定的用法:login.id获取当前登录用户的id,login.name获取当前登录用户的名称,login.orgid获取当前登录用户所在机构的id,login.orgname获取当前登录用户的名称。
我们也可以利用login对象来获取用户或机构的其他属性,例如:login.user.email来获取当前登录用户的邮箱。如果是用户自定义属性,例如:用户在系统中添加了一个用户扩展字段,字段的属性名为yhqx,利用login对象获取这个扩展字段的写法为:login.user.yhqx。如果想要获取到当前登录用户的机构其他属性,可以使用login.org.xxx的方式。
二、设置用户的数据级次维
需求:
为用户赋权实现每个用户登录系统,只能看到自己所在地区的数据,系统中有地区维度。
实现方式:
1.主题集上设置地区维度为数据级次维



2.用户与权限中设置权限
A.为机构分配资源权限(机构下的用户可以继承机构的权限,也可以利用角色来实现批量赋权)


B. 分配数据权限

C.更改权限数据
在高级中找到刚刚添加的数据权限,修改

注意这里参数的写法:
='EBI$6$7$VQKY9QPBSWNM64UQJOJWS15BP3QT9WLY$地区$'+login.user.email
其中:我们在上一步勾选地区后,系统自动生成的参数值为:
EBI$6$7$VQKY9QPBSWNM64UQJOJWS15BP3QT9WLY$地区$000000
我们需要将其修改为:
=’EBI$6$7$VQKY9QPBSWNM64UQJOJWS15BP3QT9WLY$地区$'+login.user.email
示例中使用了login.user.email属性,这是因为示例中用户的机构id与地区维表中的地区id并不匹配。所以我们在用户的邮箱属性中,单独维护了用户所在机构的值进去。

参数写法的含义是让用户查看数据的权限与login.user.email字段的值相匹配。
如果客户的机构id和地区维表的值相匹配,那么这里可以写成
=’EBI$6$7$VQKY9QPBSWNM64UQJOJWS15BP3QT9WLY$地区$'+login.orgid
D.用bj用户登录系统,计算报表会发现,系统自动按照用户的权限查询出了数据

如果需要在报表中添加一个地区参数,并且要求,参数列表只能显示用户权限范围内的地址,可以在报表中添加“单位级次下拉框”

再次使用bj用户登录系统,查看数据,可以看到地区参数的下拉列表中只显示出了“北京”地区

9个回答

只看楼主

懂与不懂的道理 初学数据Lv2

发表于2018-6-21 09:40

只看该作者

取消 关注该作者的回复

沙发

需要满足一下条件,即可自动实现:
1、是否设置了行政区划维表为 数据级次维
2、表内维下拉,是否是单位级次下拉
3、确认下登录的用户是否设置了 北京权限

卖火车的小火柴 亿信华辰高级工程师

发表于2018-6-21 09:36

只看该作者

取消 关注该作者的回复

板凳

一、获取用户(机构)的属性
在BI中通过设置数据级次维可以实现按照用户的组织机构或其他维度来为用户分配数据权限,通常情况下数据级次维需要与用户(或机构)的属性结合使用。
用户(或机构)在系统中有内置的属性,例如用户id,用户名,用户所在机构id,用户所在机构名称等,也可以在系统中添加用户自定义属性。如何获取用户的这些属性呢?BI为我们提供了登录者对象login。login对象有一些固定的用法:login.id获取当前登录用户的id,login.name获取当前登录用户的名称,login.orgid获取当前登录用户所在机构的id,login.orgname获取当前登录用户的名称。
我们也可以利用login对象来获取用户或机构的其他属性,例如:login.user.email来获取当前登录用户的邮箱。如果是用户自定义属性,例如:用户在系统中添加了一个用户扩展字段,字段的属性名为yhqx,利用login对象获取这个扩展字段的写法为:login.user.yhqx。如果想要获取到当前登录用户的机构其他属性,可以使用login.org.xxx的方式。
二、设置用户的数据级次维
需求:
为用户赋权实现每个用户登录系统,只能看到自己所在地区的数据,系统中有地区维度。
实现方式:
1.主题集上设置地区维度为数据级次维



2.用户与权限中设置权限
A.为机构分配资源权限(机构下的用户可以继承机构的权限,也可以利用角色来实现批量赋权)


B. 分配数据权限

C.更改权限数据
在高级中找到刚刚添加的数据权限,修改

注意这里参数的写法:
='EBI$6$7$VQKY9QPBSWNM64UQJOJWS15BP3QT9WLY$地区$'+login.user.email
其中:我们在上一步勾选地区后,系统自动生成的参数值为:
EBI$6$7$VQKY9QPBSWNM64UQJOJWS15BP3QT9WLY$地区$000000
我们需要将其修改为:
=’EBI$6$7$VQKY9QPBSWNM64UQJOJWS15BP3QT9WLY$地区$'+login.user.email
示例中使用了login.user.email属性,这是因为示例中用户的机构id与地区维表中的地区id并不匹配。所以我们在用户的邮箱属性中,单独维护了用户所在机构的值进去。

参数写法的含义是让用户查看数据的权限与login.user.email字段的值相匹配。
如果客户的机构id和地区维表的值相匹配,那么这里可以写成
=’EBI$6$7$VQKY9QPBSWNM64UQJOJWS15BP3QT9WLY$地区$'+login.orgid
D.用bj用户登录系统,计算报表会发现,系统自动按照用户的权限查询出了数据

如果需要在报表中添加一个地区参数,并且要求,参数列表只能显示用户权限范围内的地址,可以在报表中添加“单位级次下拉框”

再次使用bj用户登录系统,查看数据,可以看到地区参数的下拉列表中只显示出了“北京”地区

mingyue33643@gm 小试身手Lv3

发表于2018-9-17 17:03

只看该作者

取消 关注该作者的回复

地板

懂与不懂的道理 发表于 2018-6-21 09:40
需要满足一下条件,即可自动实现:
1、是否设置了行政区划维表为 数据级次维
2、表内维下拉,是否是单位级 ...

怎么设置数据级次维

西瓜小姐 数据达人Lv4

发表于2018-9-17 17:28

只看该作者

取消 关注该作者的回复

5#

mingyue33643@gm 发表于 2018-9-17 17:03
怎么设置数据级次维

感觉2楼已经给了很详细的说明呢,可以参考操作下哦

快乐的小胖子 小试身手Lv3

发表于2019-4-29 12:03

只看该作者

取消 关注该作者的回复

6#

mingyue33643@gm 发表于 2018-9-17 17:03
怎么设置数据级次维

这个是4.2版本的,这个我比较熟悉,关键现在用的是3.3版本的,这个不太一样

缱绻 数据领袖Lv6

发表于2019-4-29 12:07

只看该作者

取消 关注该作者的回复

7#

快乐的小胖子 发表于 2019-4-29 12:03
这个是4.2版本的,这个我比较熟悉,关键现在用的是3.3版本的,这个不太一样 ...

呃3.3版本没有数据级次权限吗?等我回去看看哈

快乐的小胖子 小试身手Lv3

发表于2019-4-29 12:49

只看该作者

取消 关注该作者的回复

8#

缱绻 发表于 2019-4-29 12:07
呃3.3版本没有数据级次权限吗?等我回去看看哈

不是没有,只是它没有那些高级设置,给机构下的用户赋权,结果还是能看到全部机构的数据

幺小木 数据达人Lv4

发表于2019-4-29 13:46

只看该作者

取消 关注该作者的回复

9#

快乐的小胖子 发表于 2019-4-29 12:49
不是没有,只是它没有那些高级设置,给机构下的用户赋权,结果还是能看到全部机构的数据 ...

首先设置数据级次权限 然后看下结果表生成的sql,高级设置也是有的啊


file:///C:\Users\ADMINI~1\AppData\Local\Temp\SGPicFaceTpBq\12392\03F606F1.png
file:///C:\Users\ADMINI~1\AppData\Local\Temp\SGPicFaceTpBq\12392\03F606F1.png
file:///C:\Users\ADMINI~1\AppData\Local\Temp\SGPicFaceTpBq\12392\03F606F1.png

qinmy 小试身手Lv3

发表于2019-9-24 12:36

只看该作者

取消 关注该作者的回复

10#

卖火车的小火柴 发表于 2018-6-21 09:36
一、获取用户(机构)的属性在BI中通过设置数据级次维可以实现按照用户的组织机构或其他维度来为用户分配数 ...

谢谢!谢谢!

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号