对Analysis Services Cube而言,安全,是一个非常重要的问题。在某种形式的安全要求下,Cube中的数据可能会非常敏感。例如,如果一个Cube包含整个公司的销售数 据,我们可能需要确保每个销售人员只能查看他或她自己的数据。同样,如果一个Cube包含有关公司盈利能力数据,可能我们需要谨慎使用,以确保只有财务部 和董事会有权访问它。
在本系列中,我们将讨论Analysis Services(以下简称AS,邀月注)的安全模式,探索不同的方式来使用它,并追求最佳实践。
一、示例安全前提
假设我们正在为一家跨国公司建设一个BI解决方案,我们希望我们所有的员工和合作伙伴公司可以访问我们的Cube,条件如下:
1、按国家来访问,比如加拿大的用户只能访问加拿大的数据,英国的用户只能访问英国的数据,依此类推。
2、按代理商访问,某代理商只能访问自己公司的销售信息。
3、限制对特定度量的访问,包括Real和calculated。
在现实世界中,这些限制应该在Cube创建前就已经定义好。
二、Analysis Services安全功能
AS提供了一套丰富的安全功能,使我们能够控制用户可以与一个cube交互的每一个细节。在本节中,我们将描述如何AS实际是是如何安全工作的,以及将不同类型的权限,授予用户。
1、角色和角色成员资格
AS使用角色来管理安全。角色是一个安全组,用户必须是访问多维数据集的一个或多个角色的成员。我们可以授予一个角色有权访问任何cube对象或执行任何管理任务。
基于我们的要求,我们需要创建几个角色。我们需要创建安全的国家的角色,所以我们有一个法国用户的角色只允许访问数据来自法国,加拿大的用户,只授予访 问加拿大的数据,等等。同样,我们也需要有为每个经销商提供访问Cube的角色。当然,这可能意味着,我们最终有大量不同的角色。稍后在本系列中,我们将 展示如何使用一个角色,来处理许多不同权限集。
AS使用角色来定义安全性,但一个角色,从安全模式的观点,仅仅是一个容器。安全只有当我们将用户添加到一个角色才起作用。因此,我们需要知道什么样的用户,可以添加到一个角色。答案是,只允许访问通过角色的Cube用户是Windows用户。
如果你熟悉其他微软产品,如Internet信息服务或SQL Server本身,你就会知道,他们提供了几种不同的方法对用户进行身份验证:Windows集成安全性始终是一个选项,但这些产品往往执行一些其他形式的身份验证。这并不适合于AS,它只支持Windows集成安全性,而不支持任何其他形式认证。
当我们谈到“Windows用户”的时候,我们指的是两个域用户和来自安装AS的服务器上的本地用户。本地用户经常使用的多维数据集时,是在互联网上访问。在这种情况下,将有可能是一个DMZ(De Militarized Zone)中的Analysis Services服务器,有一个Cube的副本合作网络的的某处被其他AS服务器处理,既然DMZ中的服务器不属于某个域,我们将需要使用本地用户才能访问它。
如果不想捆绑安全到指定的Windows用户,我们可以限制AS角色的成员关系到Windows用户组(更完美的是域用户组),这绝对是一个好主意。然后,我们可以通过添加和删除Windows用户到组以控制访问Cube。
因此,为了让用户访问多维数据集和强化安全,我们需要:
1、定义AS的角色,每个角色里的所有用户都拥有一整套权限集。
2、定义域组,并把它们添加到角色。为清晰起见,我们应该在AS角色和域组使用相同的名称。
3、增加域用户到这些组。
如果用户能够访问使用Windows集成安全的Cube,那么这将行之有效。然而有很多的情况下,集成的安全性不能使用,比如防火墙保护的服务器或其他类型的网络基础设施阻止集成安全。在这些情况下,我们将需要使用IIS,让用户通过HTTP连接到Cube,我们将介绍如何做到这一点,在本系列的后面。
2、安全对象
AS数据库可以使用的安全对象包括:
(1)Data Sources
(2)Cubes
(3)Dimensions
(4)Cells
显然,不同的安全对象,我们可以设置不同的权限。例如,我们可以授予在Cube级别权限执行钻取查询,而这对一个特定的维度没有任何意义。
下面是安全对象可以被授权的基本类型:
管理权限相对简单,并允许用户执行如处理一个Cube这样的任务。数据安全是更为复杂,它控制角色如何访问Cube数据;正因为如此,我们将花费更多的时间讨论数据安全及它如何实施。
3、创建角色
创建角色很简单,在BIDS解决方案列表下,选Role节点,选“new Role”即可。
4、多个角色的成员资格
用户可以属于多个角色,所以我们需要了解一个用户拥有多个角色的成员时会发生什么。
如果您参与过Windows中的安全工作,那么你可能会知道“deny wins over grant”的规则。这意味着,如果一个用户属于一个组,可以实现对资源的访问,但同时,该用户属于第二个组,该组被明确拒绝访问该资源,那么用户将无法访问该资源,因为在第二组中否认>第一组的授予。
在AS中没有这样的规则。当一个用户是多个角色的成员,该用户将拥有他们在每一个角色所有的权限的并集。例如,如果一个用户属于一个角色,只能看到加拿大和其他任何一个国家,另一个角色,只能看到法国的数据资料,该用户将能够看到加拿大和法国的数据。同样,如果一个开发人员给予他们充分的管理权限,那么这将保证他们能够执行所有管理任务和看到所有cube的所有数据,即使他们也是受限角色的成员。这可能似乎奇怪,但是,不管我们喜欢与否,这是AS的安全性工作方式。
4、测试角色
如果作为开发人员,可以有充分的管理权限,那么我们需要一种方法模拟,使我们可以测试更严格的角色是否正确启用。有三个途径:
(1)连接AS数据库的Cube时,我们可以设置以下两个连接字符串属性,连接字符串属性可以在SSMS中附加的连接属性连接对话框中的选项卡设置。
(2)在BIDS中,双击Cube,右边展开的Browser选项卡,选择“Change User”
(3)对客户端工具(比如Excel)使用”Run as”命令。
5、管理安全
AS中管理权限可被授予两个等级:服务器级别和数据库级别。要成为一个AS服务器管理员,用户必须是一个特殊的角色--全服务器管理员(server-wide Administrators)的成员。在AS安装时,用户可以被添加到这个角色时。服务器管理员有没有限制,同时,某些任务,如创建数据库,只能由服务器管理员。因此,要开发Cube,我们就必须是这个角色的成员。
数据库级别的管理权限授予数据库角色,我们刚刚在前面几节介绍。我们可以通过检查“常规(General)”选项卡上的“完全控制(Full Control)”框中的功能将所有管理权限授予到数据库中。这意味着角色的成员可以创建新的对象,编辑现有对象,处理对象等。万一我们需要更精细颗粒度控制管理权限,可以授予以下两个对整个数据库或单个对象的权限:
(1)阅读定义(Read Definition):允许角色成员读取一个对象的XMLA的定义,而不能够对其进行修改或读取与它相关的数据。如果用户需要能够查看对象在SSMS或BIDS(在联机模式下连接到数据库),他们必须拥有此权限的角色成员。
(2)处理(Process):允许一个角色的成员来处理对象。
本系列的第一节简单易懂,希望您能在轻松阅读中有所收获。下节将继续学习数据安全(Data Security),欢迎关注。
邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助! 3w@live.cn
分享到:
相关推荐
综上所述,《Expert Cube Development with Microsoft SQL Server 2008 Analysis Services》不仅是一本技术指南,更是一部实用手册,为那些希望深入了解和掌握SQL Server 2008 Analysis Services的开发人员提供了...
《专家级立方体开发与Microsoft SQL Server 2008分析服务》一书深入探讨了在数据仓库和商业智能(BI)领域内如何利用Microsoft SQL Server 2008 Analysis Services设计、实施快速、可扩展且易于维护的多维数据集(即...
《使用Microsoft SQL Server 2008 Analysis Services进行专家级立方体开发》是一本全面而实用的指南,适合希望深入了解并掌握SQL Server 2008 Analysis Services中多维数据集设计与开发的人员阅读。通过本书的学习,...
本书《Expert Cube Development with MS SQL Server 2008 SSAS》旨在为读者提供关于如何利用Microsoft SQL Server 2008 Analysis Services(SSAS)设计和实现高效、可扩展且易于维护的数据立方体(Cubes)的深入指导...
This title serves as an authoritative guide to Microsofts new "SQL Server 2012 Analysis Services" BI product and is written by key members of the Microsoft Analysis Services product development team....
This title serves as an authoritative guide to Microsofts new "SQL Server 2012 Analysis Services" BI product and is written by key members of the Microsoft Analysis Services product development team....
This title serves as an authoritative guide to Microsofts new "SQL Server 2012 Analysis Services" BI product and is written by key members of the Microsoft Analysis Services product development team....
This title serves as an authoritative guide to Microsofts new "SQL Server 2012 Analysis Services" BI product and is written by key members of the Microsoft Analysis Services product development team....
This title serves as an authoritative guide to Microsofts new "SQL Server 2012 Analysis Services" BI product and is written by key members of the Microsoft Analysis Services product development team....
《Expert Cube Development with SSAS Multidimensional Models》是关于使用SQL Server Analysis Services(SSAS)构建多维数据集的专业指南。这本书深入探讨了如何利用SSAS进行高效且复杂的立方体开发,以支持企业...
《Expert Cube Development with SSAS Multidimensional Models》是由Chris Webb、Alberto Ferrari和Marco Russo共同编写的关于SQL Server分析服务(SSAS)多维模型开发的专业书籍。本书是第二版,首次出版于2009年7...
《Microsoft SQL Server 2012 Integration Services: An Expert Cookbook》是一本由Reza Rad和Pedro Perfeito合著的关于微软SQL Server 2012集成服务(Integration Services,简称SSIS)的专业食谱式教程书籍。...
This title serves as an authoritative guide to Microsofts new "SQL Server 2012 Analysis Services" BI product and is written by key members of the Microsoft Analysis Services product development team....
This title serves as an authoritative guide to Microsofts new "SQL Server 2012 Analysis Services" BI product and is written by key members of the Microsoft Analysis Services product development team....
This title serves as an authoritative guide to Microsofts new "SQL Server 2012 Analysis Services" BI product and is written by key members of the Microsoft Analysis Services product development team....
This title serves as an authoritative guide to Microsofts new "SQL Server 2012 Analysis Services" BI product and is written by key members of the Microsoft Analysis Services product development team....
Build and manage data integration solutions with expert guidance from the Microsoft SQL Server Integration Services (SSIS) team. See best practices in action and dive deep into the SSIS engine, SSISDB...