對於采用 SQL Server 2005 Analysis Service技術生成多維數據集的BI項目來說,數據訪問權限的控制有兩個級別:一個是在多維數據集中設置,一個是在前台展現工具中設置。本文將介紹怎樣在多維數據集中設置訪問權限控制的方法。
對於訪問控制需求(這裡以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)。
圖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數據。