我们正在构建一个托管应用程序,该应用程序使用MS SQL Server Analysis Services 2005进行某些报告,特别是OLAP多维数据集浏览。由于它旨在供大型全球组织使用,因此安全性非常重要。
微软用于浏览OLAP多维数据集的首选客户端工具似乎是Excel 2007,整个基础架构都围绕Windows集成身份验证。但是,我们正在尝试构建面向Internet的Web应用程序,并且不希望为每个用户创建Windows帐户。
似乎没有很多不错的AJAXy基于Web的OLAP多维数据集浏览工具(快速,拖放维度,支持操作,跨浏览器等)另外,我们目前正在使用Dundas OLAP Grid但也考虑了RadarCube和其他更昂贵的商业解决方案,并且仍在考虑接受CellSetGrid并进一步开发 - 如果您知道其他任何便宜/开放的解决方案,请让我知道了!
因此,我们计划提供两种访问多维数据集数据的方式:
对于Web应用程序访问,SSAS数据源的连接发生在Web服务器上,因此我们可以愉快地在Connection String上传递一个CustomData项,指示哪个用户正在连接。由于我们可能有太多权限组合来创建单独的SSAS角色,因此我们实施了动态维度安全性,它将“多维数据集用户”维度与连接字符串中的CustomData项目结合使用,并限制了允许相应地设置各种其他维度成员(通过包含“权限映射”的度量组的其他多对多点击关系)
在维度安全性上查看Mosha: 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。事实证明,这也会导致Roles出现同样的问题,因为如果您使用Windows集成身份验证不,这些问题也会在连接字符串中指定。
因此问题归结为:有没有办法在没有Windows帐户的IIS中进行基本身份验证,以便可以与SSAS数据泵一起使用,让SSAS知道哪个用户正在连接,以便动态维度安全性是否可以成功使用?
(这是我在StackOverflow上的第一个问题,可能是我曾经问过的最复杂的问题:让我知道我在哪里没有解释得很清楚,我会尝试澄清)
答案 0 :(得分:3)
基本身份验证将与本地用户帐户(非域)一起使用,如果本地帐户存在于不同的计算机上,甚至支持直通身份验证,但是您应该强制使用SSL作为基本身份验证以明文形式发送密码。
您可以在IIS中使用带有基本身份验证的非Windows帐户以及http://www.codeplex.com/CustomBasicAuth等加载项,但SSAS仍然需要知道该用户是谁,据我所知SSAS仅使用Windows身份验证。
答案 1 :(得分:0)
对于SSAS的(相对)便宜的瘦客户端前端,请查看RSInteract。对于奖励积分,它还将使用SSRS报告和报告模型。
任何使用维度安全性的尝试都要求SSAS了解用户并使其具有访问权限。我没有看到任何方法来维护用户权限。