SSAS Cube 中的维度级别安全性/每用户数据安全性?

Posted

技术标签:

【中文标题】SSAS Cube 中的维度级别安全性/每用户数据安全性?【英文标题】:Dimensional Level Security / Per User Data Security in SSAS Cube? 【发布时间】:2011-09-26 18:48:31 【问题描述】:

我所在的团队希望从我们的关系数据仓库迁移到 SSAS 多维数据集。使用我们当前的设置,我们有一个“EmployeeCache”表(基本上是一个事实),它是从我们的每个员工 ID 到他们可查看的员工 ID 的映射。该表在我们的模型中连接到我们的 DimEmployee 表,因此对于需要个人身份信息的每个查询,都会过滤 DimEmployee 记录。过滤器是从会话变量应用的,该变量是进行查询的用户 ID。

我们研究的所有在 SSAS 多维数据集中提供维度级别安全性的示例都需要使用 Windows 托管安全性。创建正在分析的数据的系统处理自己的安全性。我们的 ETL 将安全结构映射到前面提到的 EmployeeCache 和 DimEmployee 表中。我们希望保持这种简单的安全结构。

正如我们所见,没有办法将会话值(除了使用查询字符串,我们在 Cognos 10.1 中看不到它)传递给多维数据集。我们也没有看到任何不需要使用 Windows 身份验证的安全示例。

有人能解释一下是否有一种方法可以实现我之前在 SSAS 多维数据集中描述的维度安全吗?如果不可能,其他多维数据集提供者是否可以拥有此功能?

【问题讨论】:

【参考方案1】:

两个想法。首先,SSAS 仅支持 windows 身份验证(请参阅Analysis Services Only Windows Authentication),这在 Sql Server 2012 中没有改变。但是您可以将连接字符串中的凭据传递给分析服务。其次,您是否可以更改每个查询的 MDX 并添加一个切片器以将数据限制为仅用户应该看到的数据?

【讨论】:

感谢您的回复。我不再处于该项目的研究阶段,我们将其列出,因为我们无法弄清楚如何获取当前登录的用户并将其传递给 Cognos 生成的 MDX 查询。如果我们生成这些查询可能会更容易,但是使用 3rd 方工具执行此操作时,我们没有控制级别。不过我很感激这个答案。

以上是关于SSAS Cube 中的维度级别安全性/每用户数据安全性?的主要内容,如果未能解决你的问题,请参考以下文章

无日期维度中的 SSAS 日期字段

SSAS优化要点-转载

SSAS CUBE 2 个事实表和 1 个维度

SSAS:菜鸟笔记

MDX跨cube查询——lookupcube

SSAS-Cube Creation 错误部署