如何控制SSRS报表中数据的访问权限
1 建立用户与维度属性值间的关系表,refAccountDim,该表存储了用户能访问的维度的属性值,也即用户权限
2 SSRS中建立带有账号参数的共享数据集,该数据集根据传入的账号从refAccountDim表中查询该账号的权限并返回,如区域
2.1 数据集输入参数为accountId
2.2 数据集需关联refAccountDim表,以获取用户的数据权限
2.3 输出必须是维度属性值的表达方式,如”[日期].[年份].&[2016]”
3 在SSRS报表中,将【2】的数据集添加到报表的数据集中
3.1 此时报表参数会自动添加accountId参数
3.2 在参数中,将accountId移动到第一个参数(因为ssrs的参数是按顺序获取的)
4 将【3】的数据集作为相应的参数的【可用值】和【默认值来源】,这样就实现了通过参数数据源的控制来控制对数据权限的控制
5 在web中使用ReportView加载SSRS报表,并向SSRS报表传递accountId参数
6 完成,当用户访问报表时,报表获取到用户的id,通过id查询到用户的相应维度的权限,然后通过该权限来限定用户的查询条件,通过查询条件来控制用户的数据访问权限