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函数用来获取当前连接的域名和用户名。
这样,不同的用户在登录系统之后,自定义程序将根据用户名返回特定的维度成员集合,这样,不同的用户将看到不同的维度成员,从而实现动态的权限控制。