【发布时间】:2008-09-24 10:13:16
【问题描述】:
我们正在构建一个托管应用程序,该应用程序使用 MS SQL Server Analysis Services 2005 进行一些报告,特别是 OLAP 多维数据集浏览。由于它是为大型全球组织设计的,因此安全性很重要。
Microsoft 用于浏览 OLAP 多维数据集的首选客户端工具似乎是 Excel 2007,并且整个基础架构都围绕 Windows 集成身份验证。但是,我们正在尝试构建面向 Internet 的 Web 应用程序,并且不想为每个用户创建 Windows 帐户。
似乎也没有很多不错的基于 AJAXy Web 的 OLAP 多维数据集浏览工具(快速、拖放维度、支持动作、跨浏览器等)顺便说一句,我们目前正在使用Dundas OLAP Grid,但也考虑过 RadarCube 和其他更昂贵的商业解决方案,并且仍在考虑采用 CellSetGrid 并进一步开发它 - 如果您知道任何其他廉价/开放的解决方案,请告诉我!
因此,我们计划提供两种访问多维数据集数据的模式:
- 通过我们自己的 Web 应用程序,使用这些第 3 方基于 Web 的 OLAP 浏览工具之一。
- 通过 msmdpump.dll 数据泵通过 HTTPS 从 Excel 直接访问,适用于 Web 版本太慢/笨拙或用户需要更强大的分析时。
对于 Web 应用程序访问,与 SSAS 数据源的连接发生在 Web 服务器上,因此我们可以愉快地在连接字符串上传递一个 CustomData 项,该项指示正在连接的用户。由于我们可能拥有太多的权限组合来为其创建单独的 SSAS 角色,因此我们实施了动态维度安全,它使用“Cube Users”维度与来自连接字符串的 CustomData 项结合使用并限制Allowed Set 相应的各种其他维度成员(通过与包含“权限映射”的度量组的其他多对多维度关系)
请参阅 Mosha 的 Dimension Security: http://www.sqljunkies.com/WebLog/mosha/archive/2004/12/16/5605.aspx
到目前为止,这一切似乎都运行良好。
对于来自 Excel 的“直接连接”,我们为 HTTP 访问设置了数据泵 (请参阅MS Technet article)但启用了匿名访问,再次依赖连接字符串来控制访问,因为我们没有 Windows 帐户。 但是,在这种情况下,连接字符串由用户控制(我们从 Web 应用程序推送一个 .odc 文件,但好奇的用户可以查看和更改它),因此我们不能依赖用户良好并保留 CustomData =grunt@corp.org 从更改为 CustomData=superuser@corp.org。事实证明,这也会导致与角色相同的问题,因为如果您不使用 Windows 集成身份验证,这些也会在连接字符串中指定。
因此问题归结为:有没有一种方法可以在没有 Windows 帐户的情况下在 IIS 中获得基本身份验证,以便与 SSAS 数据泵一起使用,让 SSAS 知道哪个用户正在连接,以便动态维度安全可以成功使用吗?
(这是我在 StackOverflow 上的第一个问题,可能是我问过的最复杂的问题:让我知道我没有很好地解释自己的地方,我会尝试澄清)
【问题讨论】:
-
你找到解决办法了吗?
标签: sql-server ssas