BIEE版本:BIEE11.1.1.9.0
权限控制策略:通过外部权限表对用户权限进行控制,权限设置如下:
1、通过外部权限表进行登录验证
DWH_USER_PRIVILEGE表如下
RPD新建初使化块对用户登录做验证
把初使化块值赋给相应变量(这里都有系统变量)
这时用户可以登录BIEE了
2、报表权限控制
将数据库用户对应的角色在EM中相应创建
这时RPD中可以看到EM中创建的应用程序角色,但是BIEE11.1.1.9.0不能在线同步EM中的应用程序角色,
需离线打开手动创建与EM中一样的应用程序角色,再重新部署并重启BI服务才可以(这是BIEE11.1.1.9.0的Bug)
把应用程序角色或用户赋予给相应的仪表盘及分析可实现报表权限控制,这里就不再截图
3、数据权限控制
因为用户通过外部权限表控制权限的,所以先得从数据库中获取到用户所属应用程序角色
数据库dwh_user_privilege_roles表数据如下:
RPD新建初使化块获取用户角色
将用户角色值赋给系统变量ROLES,因为一个用户可能属于多个角色,所以必须勾选行范围初使化复选框,并且初使化块SQL中
设置一个与变量名同名的常量列名(ROLES)来获取值
对角色设置数据过滤
结果角色中的用户登录BIEE后查看相应字段并没有实现数据过滤功能?????????
解决方法:
在线对应用程序角色设置的数据过滤条件在重启服务后过滤条件会丢失,也就是设置的过滤条件没有真正保存。
因此需离线打开RPD对应用程序角色设置过滤条件,然后再重新发布并重启BI服务即可。
这可能是BIEE11.1.1.9.0的一个Bug.