Analysis Services 中動態許可權設定
1. 思路
1) 客戶端傳送對多維資料庫的資料請求;
2) 多維資料庫啟用自定義程式集;
3) 自定義程式集請求客戶端AD賬號;
4) 客戶端返回AD賬號給自定義程式;
5) 自定義程式通過對AD賬號的判斷,將使用者可以訪問的維度成員集合返回至多維資料庫;
6) 多維資料庫根據維度成員集合,返回給客戶端相應的資料集。
2. 配置
1) 開發自定義程式集,如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace ClassLibrary2
{
public class Class1
{
public static string aa(string UserName)
{
if (UserName = "ChenYujue")
{
return "{[Department Standard].[Da Qu].&[315]}";
}
}
}
}
自定義程式集將能過引數返回當前使用者可以訪問的維度成員列表。在自定義程式集中,可以通過SQL和ADOMD訪問資料倉庫及多維資料庫,從而獲取相應的維度成員更表
2) 載入程式集
在建立完自定義程式集之後,需要在多維資料庫中載入此程式集。在Microsoft SQL Server Management Studio中,在程式集資料夾上點選右鍵,選擇新建程式集。在新建程式集介面上,選擇已經開發完成的程式集,點選確定。
3) 建立角色
載入之後,將在多維資料庫中建立角色。此角色將對應所有使用者的AD賬號,在指定維度資料時,呼叫自定義程式集中的函式。如圖:
其中,UserName函式用來獲取當前連線的域名和使用者名稱。
這樣,不同的使用者在登入系統之後,自定義程式將根據使用者名稱返回特定的維度成員集合,這樣,不同的使用者將看到不同的維度成員,從而實現動態的許可權控制。