1 背景
目前,设置数据模型的行权限时,只能针对单个表/查询中的字段进行设置,如果在维表中设置了行权限,这一权限会自动应用到关联的事实表,导致事实表也受到行权限的控制。
然而,如果客户只想控制事实表的输出结果,并不想控制维表的输出结果。目前,在设置数据模型的行权限时,只能针对单个表/查询中的字段进行设置。
如果在维表中设置了行权限,这一权限会自动应用到关联的事实表,导致事实表也受到行权限的控制。
然而,有时候如果客户只想控制事实表的输出结果,并不想控制维表的输出结果,那么就直接在事实表上设置行权限。
信息 |
---|
1、需要开启数据模型引擎V2.0才能正常使用该功能。 2、如果在维表中设置了行权限,这一权限会自动应用到关联的事实表。如果不想把维表的权限应用到事实表中可以勾选: |
2 示例说明
场景描述:有4张表:客户表、贷款明细、贷款与担保关系、担保明细表
1个客户可能有0到多笔贷款、1笔贷款有0到多笔担保、1笔担保也可能是1到多笔贷款。一个客户可以有零或多笔贷款,一笔贷款可以有零或多笔担保,而一笔担保可以关联到一笔或多笔贷款
客户表数据:
贷款明细:
贷款与担保关系:
担保明细表:
...
2、在用户管理中创建另外一个用户:demo,赋予它能引用查看该模型以及基于它做的的报表的权限。
2.1 在维度表上设置行权限
在维表中设置了行权限,这一权限会自动应用到关联的事实表;根据筛选方向,能传递到的事实表均会受到行权限的控制。
...
对”客户表“来说,”贷款信息“表是它的事实表,它是”贷款信息“表的维表, 并且能通过筛选方向传递到”贷款与担保关系“表, 所有即使没有勾选维表”客户表“的字段,行权限仍然会生效。
2.2 在事实表中设置维表的行权限
1、把“贷款与担保模型” 另存一份,并且把2.1 设置的行权限删除。
...
或者直接只查看"贷款信息"表的信息,发现也只能查看”客户A、客户B“
再来查看贷款与担保信息,会发现,也只能查看:客户A、客户B的信息:
差一张图,有bug:
直接查”“客户信息”表,能查看所有客户的信息:
信息 |
---|
通过示例可以看到:如果只想控制事实表的输出结果,并不想控制维表的输出结果,可以在事实表中设置行权限,并且可以设置多个字段的直接是and 或OR的关系: |
3 在”高级模式“下设置行权限
在设置行权限时,选择高级模式,高级模式的逻辑与简单模式一致,在高级模式下,也能使用子图的字段进行条件控制,并且在SQL的子查询中,可以使用不在子图中表的字段。