saiku权限配置

来源:互联网 发布:淘宝知识产权侵权标准 编辑:程序博客网 时间:2024/06/03 22:56
saiku权限配置是通过mondrian的权限配置实现的,也就是在schema文件简单的配置就能实现,由于对mondrian的权限并没有深入研究,笔者就描述下用到的权限配置;
笔者公司的saiku主要用于支持各个业务线的BI、日志等数据的分析,因此按业务线分配多个角色与模块:ROLE_PRODUCT、ROLE_TALK等,这时要求每个角色只能访问器对应业务模块的主题,管理员自然可以访问所有的模块主题,若一个用户需要访问多个模块则给该用户多个角色;
mondrian中权限配置最关注的是SchemaGrant和CubeGrant:
<Role name="ROLE_*"><SchemaGrant access='none'><!-- "all" 、 "none" -->            <CubeGrant cube='' access='all' /><!--  "all", "custom" , "none" --></SchemaGrant></Role>
Schema1:
<Role name="ROLE_PRODUCT"><!-- 只能ROLE_PRODUCT访问  --><SchemaGrant access='none'><CubeGrant cube='CUBE1' access='all' /></SchemaGrant></Role><Role name="ROLE_USER"><!--ROLE_USER不能访问  --><SchemaGrant access='none' /></Role><Role name="ROLE_ADMIN"><!--ROLE_ADMIN访问所有  --><SchemaGrant access='all' /></Role>

Schema2:
<Role name="ROLE_PRODUCT"><!-- 只能ROLE_PRODUCT访问  --><SchemaGrant access='none'><CubeGrant cube='CUBE2' access='all' /></SchemaGrant></Role><Role name="ROLE_USER"><!--ROLE_USER不能访问  --><SchemaGrant access='none' /></Role><Role name="ROLE_ADMIN"><!--ROLE_ADMIN访问所有  --><SchemaGrant access='all' /></Role>

Schema3:
<Role name="ROLE_TALK"><SchemaGrant access='none'><CubeGrant cube='CUBE3' access='all' /><CubeGrant cube='CUBE4' access='all' /></SchemaGrant></Role><Role name="ROLE_USER"><SchemaGrant access='none' /></Role><Role name="ROLE_ADMIN"><SchemaGrant access='all' /></Role>

如上配置就实现了:
1.ROLE_USER不能访问所有cube;
2.ROLE_ADMIN可以访问所有cube;
3.ROLE_PRODUCT可以访问CUBE1、CUBE2,ROLE_TALK可以访问CUBE3、CUBE4;
4.用户要访问所有cube,则需要给ROLE_PRODUCT和ROLE_TALK;

以上配置实现之前需要在数据源连接的配置中加入如下两个参数:
security.enabled=true
security.type=one2one

1 0
原创粉丝点击