對于訪問控制需求(這里以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、 新建Windows測試賬戶“Jeffrey”。不要定義成Administrator組,因為Administrator組的用戶自動擁有訪問多維數集的權限。
2、 打開Analysis Servie 項目工程,在角色列表項中單擊右鍵新建角色,打開新建角色對框。
3、 設置訪問權限(如圖1)。

圖1
這里只需要讀取數據,如果用戶需要有要處理更新cube時,可以根據需要進行設置。
圖2
5、 設置多維數據集訪問權限,選擇“讀”,本地鉆取選擇“鉆取”(如圖3)
圖3
6、 選擇維度數據選項卡,選擇維度中的“Customer”維度(如圖4)。
圖4
7、 假設為Australia分公司定義權限,角色定義了只能訪問區域為Australia的數據(如圖5),在高級選項卡可以寫mdx進行成員的選擇。在成員列列中選擇“Australi”。
圖5
8、 選擇“成員身份”選項卡,單擊“添加”,在彈出的對話框中輸入“Jeffrey”(Windows用戶),檢查名稱之后如圖6所示。
圖6
9、 完成上面的步驟之后,保存,部署就設置完成
設置成功這后,客戶端軟件(Reporting Service,或ProClarity )以Jeffery用戶連上多維數據集,就只能訪問Australi的數據如圖7。
以Jeffery用戶登陸,customer下的區域維度所有成員只有Australi,成功的限制Jeffery用戶只能訪問Australi數據
文章來源于領測軟件測試網 http://www.kjueaiud.com/