4

我们正在构建一个托管应用程序,该应用程序使用 MS SQL Server Analysis Services 2005 进行一些报告,特别是 OLAP 多维数据集浏览。由于它旨在供非常大型的全球组织使用,因此安全性很重要。

微软浏览 OLAP 多维数据集的首选客户端工具似乎是 Excel 2007,整个基础架构都围绕 Windows 集成身份验证。但是,我们正在尝试构建面向 Internet 的 Web 应用程序,并且不想为每个用户创建 Windows 帐户。

似乎也没有很多不错的基于 AJAXy Web 的 OLAP 多维数据集浏览工具(快速、拖放维度、支持动作、跨浏览器等)。顺便说一句,我们目前正在使用Dundas OLAP Grid但也考虑过 RadarCube和其他更昂贵的商业解决方案,并且仍在考虑采用CellSetGrid并进一步开发它 - 如果您知道任何其他廉价/开放的解决方案,请告诉我!

因此,我们计划提供两种访问多维数据集数据的模式:

  1. 通过我们自己的 Web 应用程序,使用这些第 3 方基于 Web 的 OLAP 浏览工具之一。
  2. 通过 msmdpump.dll 数据泵通过 HTTPS 从 Excel 直接访问,适用于当 Web 版本太慢/笨拙或用户需要更强大的分析时。

对于 Web 应用程序访问,与 SSAS 数据源的连接发生在 Web 服务器上,因此我们可以愉快地在连接字符串上传递一个 CustomData 项,该项指示正在连接的用户。由于我们可能拥有太多的权限组合来为其创建单独的 SSAS 角色,因此我们实现了动态维度安全性,该安全性使用“多维数据集用户”维度与连接字符串中的 CustomData 项并限制各种其他维度成员的允许集相应地(通过与包含“权限映射”的度量组的其他多对多维度关系)

参见 Mosha 关于 Dimension Security: http ://www.sqljunkies.com/WebLog/mosha/archive/2004/12/16/5605.aspx

到目前为止,这一切似乎都运行良好。

对于来自 Excel 的“直接连接”,我们为 HTTP 访问设置了数据泵(请参阅MS Technet 文章),但启用了匿名访问,再次依赖连接字符串来控制访问,因为我们没有 Windows 帐户。但是,在这种情况下,连接字符串由用户控制(我们从 Web 应用程序推送一个 .odc 文件,但好奇的用户可以查看和更改它),因此我们不能依赖用户良好并保留 CustomData =grunt@corp.org 从更改为 CustomData=superuser@corp.org。事实证明,这也会导致与角色相同的问题,因为如果您使用 Windows 集成身份验证,这些也会在连接字符串中指定。

因此,问题归结为:有没有一种方法可以在没有 Windows 帐户的情况下在 IIS 中获得基本身份验证,从而可以与 SSAS 数据泵一起使用,让 SSAS 知道哪个用户正在连接,以便动态维度安全性可以能成功使用吗?

(这是我在 StackOverflow 上的第一个问题,可能是我问过的最复杂的问题:让我知道我没有很好地解释自己的地方,我会尝试澄清)

4

2 回答 2

3

基本身份验证将与本地用户帐户(非域)一起使用,如果本地帐户存在于不同的机器上,甚至支持直通身份验证,但是您应该强制使用 SSL,因为基本身份验证以明文形式发送密码。

您可以在带有附加组件的 IIS 中使用具有基本身份验证的非 Windows 帐户,例如http://www.codeplex.com/CustomBasicAuth,但 SSAS 仍然需要知道该用户是谁,并且据我所知 SSAS 仅使用Windows 身份验证。

于 2008-10-24T12:15:10.507 回答
0

对于 SSAS 的(相对)便宜的瘦客户端前端,请查看RSInteract。对于奖励积分,它还将消耗 SSRS 报告和报告模型。

任何使用维度安全性的尝试都需要 SSAS 了解用户并拥有他们的访问权限。我看不出有任何方法可以绕过维护用户权限。

于 2008-09-24T10:51:57.443 回答