SSAS OLAP Cube配置Cube Roles行级安全后权限未生效问题咨询
配置错误核心原因
- 未开启角色维度权限的视觉合计:你在Cube全局禁用总计不生效,是因为角色层面维度数据权限的「视觉合计」开关默认关闭,此时度量值的计算范围包含所有权限允许和禁止的成员,就算你隐藏了其他区域的行,总金额还是会统计全量数据,这就是Customer表总金额不符合预期的直接原因。
- 维度权限未关联跨维度的度量值组:你仅配置了Customer维度的区域权限,没有将该权限和Product维度做关联过滤,多维模型中默认不同维度的权限是独立的,因此Product维度不会受Customer维度权限的限制,直接返回全量数据。
- 权限配置未覆盖关联维度的成员过滤:你要实现「仅查看负责区域对应的所有产品营收」的效果,需要通过事实表的关联关系,把Customer维度的权限传递到Product维度,你当前的配置只限制了Customer维度的行可见性,没有做权限传递。
修复步骤
- 开启视觉合计开关
进入你创建的角色配置界面,依次点击「维度数据」选项卡 → 选择Customer维度 → 选择你配置了权限的销售区域属性 → 切换到「高级」页签 → 勾选「启用视觉合计(Enable visual totals)」,保存角色配置。 - 配置跨维度的权限传递
针对Product维度配置权限过滤,用MDX关联Customer维度的允许成员,示例代码如下(替换成你模型对应的维度、属性、度量值组名称):
Exists( [Product].[Product Name].AllMembers, StrToSet("[Customer].[Sales Region].CurrentMember"), "你的营收度量值组名称" )
将这段MDX填写到Product维度自定义允许成员的配置框中,实现仅显示对应区域客户关联的产品数据。
3. 动态权限优化(可选)
如果后续有多个销售需要配置权限,建议新增一张权限映射表,存储销售的AD登录账号和对应的负责区域,配置动态安全自动匹配当前登录用户的权限,无需为每个销售单独创建角色。
内容的提问来源于stack exchange,提问作者Jaime
相关产品推荐
相关产品推荐

