对于采用 SQL Server 2005 Analysis Service技术生成多维数据集的BI项目来说,数据访问权限的控制有两个级别:一个是在多维数据集中设置,一个是在前台展现工具中设置。本文将介绍怎样在多维数据集中设置访问权限控制的方法。
P+wz ')Y &@, 对于访问控制需求(这里以SQL Server 2005自带的示例说明)有如下说明:假设Adventure Works Cycles将全球的销售按国家和地区分为不同的分公司(Australia分公司、Canada分公司、France分公司、Germany分公司、United Kingdom分公司、United States分公司),总公司CEO可以看到每个分公司的销售情况,分公司的经理只能看到自己所在的分公司的销售情况。分析需求可以得知,实际上需要根据用户来决定用户访问的数据,可以利用SQL Server 2005 Analysis Service中定义角色的方式来控制。
}/2*#%l COCWjR 定义角色可以在多维数据集开发环境中定义,也可以完成多维数集部署之后在数据库服务器端定义。
HW;ly\ Hyfqx`^ 多维数据集角色是一类访问权限的集合,可以在角色中定义属于这个角色的用户能访问什么数据,不能访问什么数据。定义了角色之后,可以为这个角色添加成员,成员是服务器Windwos账户或者是域账户。当某个角色赋于某个成员之后,客户端使用该用户登陆的时候,只能看到角色中定义的权限访问多维数据集。如果在开发环境定义的角色必须先保存然后部署才能生效。
]\RVR` :Xhd
ATD 下面具体介绍设置方法(前台测试工具用普科(ProClarity)):
['<CJ;f) x
%g^2 1、 新建Windows测试账户“Jeffrey”。不要定义成Administrator组,因为Administrator组的用户自动拥有访问多维数集的权限。
70=, fo Co("$<$! 2、 打开Analysis Servie 项目工程,在角色列表项中单击右键新建角色,打开新建角色对框。
t 5+P>$ %wh-G+X^ 3、 设置访问权限(如图1)。
3
DA-r '
3;/$g
Bt TUx5 ]V 图1
@y,1WYD CS\H6T& 这里只需要读取数据,如果用户需要有要处理更新cube时,可以根据需要进行设置。
E#0[BBk tv
p{jw
R3Gg~o E]kngyP 图2
~!tsl?m =|+; )L!^ 5、 设置多维数据集访问权限,选择“读”,本地钻取选择“钻取”(如图3)
HSk3w}v& g2RWS5
H7a|BS}65& 6、 选择维度数据选项卡,选择维度中的“Customer”维度(如图4)。
isZBy`0jKZ O$mt
2\ a
6C
m+'~^# ]&:=5T"V 7、 假设为Australia分公司定义权限,角色定义了只能访问区域为Australia的数据(如图5),在高级选项卡可以写mdx进行成员的选择。在成员列列中选择“Australi”。
$qU`JT B]6hoP?r> |HX`Zde!s
YH_S{q*5 8、 选择“成员身份”选项卡,单击“添加”,在弹出的对话框中输入“Jeffrey”(Windows用户),检查名称之后如图6所示。
*;%JSx,!@
%nI>y<j U%O`!*%0O 图6
%A^hbb; QC"G o4J 9、 完成上面的步骤之后,保存,部署就设置完成
WUowUja` PN| 4ozb 设置成功这后,客户端软件(Reporting Service,或ProClarity )以Jeffery用户连上多维数据集,就只能访问Australi的数据如图7。
?tTz tLk/ts}
C1ro* A3
eN:n 以Jeffery用户登陆,customer下的区域维度所有成员只有Australi,成功的限制Jeffery用户只能访问Australi数据。