对于访问控制需求(这里以SQL Server 2005自带的示例说明)有如下说明:假设Adventure Works Cycles将全球的销售按国家和地区分为不同的分公司(Australia分公司、Canada分公司、France分公司、Germany分公司、United Kingdom分公司、United States分公司),总公司CEO可以看到每个分公司的销售情况,分公司的经理只能看到自己所在的分公司的销售情况。分析需求可以得知,实际上需要根据用户来决定用户访问的数据,可以利用SQL Server 2005 Analysis Service中定义角色的方式来控制。 定义角色可以在多维数据集开发环境中定义,也可以完成多维数集部署之后在数据库服务器端定义。 多维数据集角色是一类访问权限的集合,可以在角色中定义属于这个角色的用户能访问什么数据,不能访问什么数据。定义了角色之后,可以为这个角色添加成员,成员是服务器Windwos账户或者是域账户。当某个角色赋于某个成员之后,客户端使用该用户登陆的时候,只能看到角色中定义的权限访问多维数据集。如果在开发环境定义的角色必须先保存然后部署才能生效。
下面具体介绍设置方法(前台测试工具用普科(ProClarity)): 1、新建Windows测试账户“Jeffrey”。不要定义成Administrator组,因为Administrator组的用户自动拥有访问多维数集的权限。 2、打开Analysis Servie 项目工程,在角色列表项中单击右键新建角色,打开新建角色对框。 3、设置访问权限(如图1)。
点击查看大图
图1
这里只需要读取数据,如果用户需要有要处理更新cube时,可以根据需要进行设置。
点击查看大图图2
5、设置多维数据集访问权限,选择“读”,本地钻取选择“钻取”(如图3)
点击查看大图图3
6、选择维度数据选项卡,选择维度中的“Customer”维度(如图4)。
点击查看大图·SQL Server 2000企业版安装教程·visual studio 2005 简体中文团队开发·Java连接SQL Server 2000·用Java访问SQL Server 2000数据库·一次SQL Server 2000 安装奇遇·不用安装客户端连接sql server 2000·Java 实现连接sql server 2000(JDBC数·SQL Server 2000安装和基本框架·剖析SQL Server 2005查询通知之基础篇·SQL Server 2005 Beta 2 Transact-SQL
图4
7、 假设为Australia分公司定义权限,角色定义了只能访问区域为Australia的数据(如图5),在高级选项卡可以写mdx进行成员的选择。在成员列列中选择“Australi”。
点击查看大图
图5
8、 选择“成员身份”选项卡,单击“添加”,在弹出的对话框中输入“Jeffrey”(Windows用户),检查名称之后如图6所示。
点击查看大图
图6
9、完成上面的步骤之后,保存,部署就设置完成。设置成功这后,客户端软件(Reporting Service,或ProClarity )以Jeffery用户连上多维数据集,就只能访问Australi的数据如图7。
点击查看大图
图7
以Jeffery用户登陆,customer下的区域维度所有成员只有Australi,成功的限制Jeffery用户只能访问Australi数据。