页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 16 下一个 »

1 背景

目前,在设置数据模型的行权限时,只能针对单个表/查询中的字段进行设置。

如果在维表中设置了行权限,这一权限会自动应用到关联的事实表,导致事实表也受到行权限的控制,这种设置行权限的做法是最常用的做法;

然而,有时候如果客户只想控制事实表的输出结果,并不想控制维表的输出结果,那么就直接在事实表上设置行权限。

1、需要开启数据模型引擎V2.0才能正常使用该功能。


2 示例说明

场景描述:有4张表:客户表、贷款明细、贷款与担保关系、担保明细表

一个客户可以有零或多笔贷款,一笔贷款可以有零或多笔担保,而一笔担保可以关联到一笔或多笔贷款

客户表数据:

贷款明细:

贷款与担保关系:

担保明细表:

前置条件

1、如果想复现示例,需要先把示例数据导入到模型中 或者把文件导入到业务库中,详细查看:文件

2、示例下载数据: 示例.xls 。

1、把数据导入到数据模型中,并且设置好关系联系以及筛选方向,保存模型,并且命名为”贷款与担保模型“

以下示例都是以该模型作为演示示例。

2、在用户管理中创建另外一个用户:demo,赋予它能引用查看该模型以及基于它做的的报表的权限。

2.1 在维度表上设置行权限

在维表中设置了行权限,这一权限会自动应用到关联的事实表;根据筛选方向,能传递到的事实表均会受到行权限的控制。这种设置行权限的做法是最常用的做法。

1、假设我们在 ”客户表“中设置行了权限,设置行权限操作可查看:数据模型行权限

并且只应用于 demo 用户,并且设置能查看“客户A”、“客户B”,效果如下图:

2、保存行权限并基于该模型去创建透视分析: 查看所有客户的贷款信息

效果如下:


3、切换成demo用户查看该报表,发现只能查看”客户A、客户B“的效果:

或者直接只查看"贷款信息"表的信息,发现也只能查看”客户A、客户B“

再来查看贷款与担保信息,会发现,也只能查看:客户A、客户B的信息:

对”客户表“来说,”贷款信息“表是它的事实表,它是”贷款信息“表的维表,  并且能通过筛选方向传递到”贷款与担保关系“表,    所有即使没有勾选维表”客户表“的字段,行权限仍然会生效。


2.2  在事实表中设置维表的行权限

1、把“贷款与担保模型” 另存一份,并且把2.1 设置的行权限删除。

2、选择事实表设置行权限,选择在“贷款信息”表中设置行权限,操作如下图:

当选择了事实表设置行权限时候,重点说明一下,在选择字段列时:可以显示它对应的子图,即能筛选它的表的字段都可以设置行权限。

3、设置demo用户,只能查看,客户表下的”客户编号“为”客户A“、”客户B“,设置好之后保存行权限。

4、去创建透视分析,查看:所有客户的贷款信息,效果如下:


5、切换成demo用户查看该报表,发现只能查看”客户A、客户B“的效果:

或者直接只查看"贷款信息"表的信息,发现也只能查看”客户A、客户B“

直接查”“客户信息”表,能查看所有客户的信息:

1、如果在某些情况下,在事实表中设置了行权限,还想控制维表的数据,这时需要在维表再设置一次行权限:

如果同时查询维表与事实表之间的字段,由于多个表之间设置的行权限是AND关系,可能会导致数据变少。这时可以勾选“权限仅作用于”,勾选之后,该表设置的行权限不会传递到他关联的表上。

2、

通过示例可以看到:如果只想控制事实表的输出结果,并不想控制维表的输出结果,可以在事实表中设置行权限,并且可以设置多个字段的直接是and 或OR的关系:


3 在”高级模式“下设置行权限

在设置行权限时,选择高级模式,高级模式的逻辑与简单模式一致,在高级模式下,也能使用子图的字段进行条件控制,并且在SQL的子查询中,可以使用不在子图中表的字段。

  • 无标签