参考:SQL 2005 分析服务基于角色的动态授权
上文的评论中有人说到:
我不太明白[产品].[账号].currentmember=StrToTuple("[产品].[账号].&["+LCase(UserName)+"]"),这样设计不是因为产品维度里有个账号属性吗?
是不是每个产品只能属于一个账号呢?
解决这个问题,其实不难,只需要将 角色定义是稍作修改
打开角色》维度数据》选择相应的维度属性
将允许的成员表达式:
StrToTuple("[业务员医院].[地区帐号].&["+LCase(UserName)+"]")
修改为:
Filter( [业务员医院].[地区帐号].ALLMEMBERS, Instr( [业务员医院].[地区帐号].currentmember.Properties( 'Member_Caption' ),"["+LCase(UserName)+"]" ) > 0 )
