11 BO数据权限控制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、在数据库新建权限控制表,记录登录人员及其拥有的权限,下面的例子是基于MS SQL Server 2005和BO R2:

CREATE TABLE SIS_CTL_User(

name varchar(50),--登录人员ID

user_desc varchar(50),--登录人员描述,可为空

Region varchar(20),--有数据权限的区域

country varchar(10),--有数据权限的国家

Sub_Region varchar(10),--有数据权限的小区

City varchar(20),--有数据权限的城市

brand varchar(20),--有数据权限的品牌

Sub_Brand varchar(20)----有数据权限的子品牌

)

对于地区和产品2个权限,如果记录Sub_Region的数据权限,则Region可以不填,其余类似,即只需要将拥有权限的那层填充即可,上级、下级不需要填。

模拟测试数据:

用户test1拥有Region EOC的权限,用户test2拥有Sub_Region WOC1、WOC2的权限:insert into SIS_Ctl_User(name,region)

values('test1','EOC');

insert into SIS_Ctl_User(name,sub_region)

values('test2','WOC1');

insert into SIS_Ctl_User(name,sub_region)

values('test2','WOC2');

2、在BO控制台将test1加入组Region,test2加入组Sub_Region(目的是将权限控制应用在组上,如果是对单个用户应用权限控制,则不需要加入组)

3、在Universe配置权限控制:

新建2个限制,一个是限制大区的权限,一个限制小区的权限:

新建访问限制,在新开的窗口输入限制名称“大区权限”,在下面的部分选择“行”,

然后“添加”,在新开的窗口指定“表”,这里表一般是维度表,比如区域维度、产品维度,建议通过选择而不是手动输入,选择维度表“SIS_Dim_Region”;在where部分输入限制脚本,脚本里获得登录用户,与SIS_CTL_User表的name关联,SIS_CTL_User表的Region 与前面选择的维度表SIS_Dim_Region.Region关联,脚本如下,注意,脚本最前面不要加where:exists(select1 from SIS_CTL_User A where =@Variable('BOUSER')and A.Region=SIS_Dim_Region.Region)

然后,“确定”,“确定”;

现在限制建好了,但是要把这个限制应用在用户组上,在“管理访问限制”窗口左边是存在的限制,在右边“添加用户或组”,选择“Region”组,然后“应用”,不然右边的“限制”列显示“<无>”,设置好的界面如下:

接下来我们创建小区的限制,与上面的步骤类似,只是限制脚本用的是Sub_Region,选择的组是Sub_Region组:

确定,保存Universe,导出到BO服务器。4、

test1登录,刷新报表后只显示EOC的数据:

test2登录,只显示WOC1、WOC2的数据:

相关文档
最新文档