1. 程式人生 > >Analysis Services 中動態許可權設定

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函式用來獲取當前連線的域名和使用者名稱。

這樣,不同的使用者在登入系統之後,自定義程式將根據使用者名稱返回特定的維度成員集合,這樣,不同的使用者將看到不同的維度成員,從而實現動態的許可權控制。