Saiku的权限控制主要包含两方面的权限: 数据源(Cube)权限控制 和 保存好的文件以及目录权限控制
一、新增Saiku用户信息与角色信息
Saiku默认的用户就是admin,这也是权限最高的一个用户,admin用户的角色是 ROLE_ADMIN
admin用户可以查看到其他用户的文件目录信息,能新增用户,新增角色,也只有admin能操作管理控制平台.
1.1 Saiku新增用户
1> 登录saiku后,点击 A 进入管理控制台
2> 进入用户管理栏位 User Management
3> 添加用户信息 Add User
4> 依次填写右侧的 用户名 邮件地址 密码信息 (这里创建report用户)
1.2 Saiku 新增角色
5> 添加角色信息 Add new role (Saiku默认有两个角色 ROLE_ADMIN / ROLE_USER ,如果你在创建用户的时候不指定角色 系统会默认为你指定 ROLE_USER角色)
6> 添加自定义角色信息 如果你不想使用系统角色也可以自己直接新建角色信息,在 Add new role 栏位输入新的角色信息(名字自定) ROLE_READ 然后点击 Add Role,该角色就会出现在Existing role框框中
7> 移除角色信息 如果添加了不需要的角色信息 可以在Existing role框中点击那个角色,然后点击下方的 Remove Selected one 按钮,就可以把角色信息移除了
8> 保存用户信息 用户基本信息都填写好后 点击 save user ,保存用户信息。
二、文件以及目录权限控制
以管理员的身份 admin用户登录系统,进入文件目录
1> 打开Reporitory(存储文件信息的仓库)
2> 进入datasources目录 (用于保存配置好的报表数据的文件目录)
3> 点击右侧的 人物标识图标 ,点击后弹出右侧框框 【如果不选择具体的文件则是对datasources目录做权限控制,如果选中了具体文件再点击右侧 人物标识图标 则是对具体文件做权限控制】
4> 添加角色信息 输入角色名称 ROLE_READ (这里的角色信息需在UserManager已经添加或者系统已经存在的角色信息)
5> 选定角色权限 读、写、同意, 读(意思是指定角色能读取此目录的信息,能写数据进入当前目录或者修改数据,能修改目录的权限信息)
6> 点击添加按钮,就会在角色框看到刚刚添加的角色信息
7> 再点击下方的 OK 按钮,则添加成功。
8> 可退出系统,重新启动saiku服务器,登录拥有指定权限角色的用户信息,然后就能进行验证。 report用户登录,就会发现report用户登录后只能看到datasources目录,但是无法做修改或新增数据信息。
注意: Admin用户能看到所有用户的目录信息
三、 MDX数据源权限控制
系统自带的角色信息: ROLE_ADMIN ROLE_USER,自己新增的角色: ROLE_READ
在XML文件中新增角色配置信息,记得在xml文件的最下方添加哦 [<Schame>标签以内,所以<Cube>标签的下方]。
本例中在 配置datasources数据源信息时引用的xml文件为report.xml ,故在report.xml文件中添加如下配置
ps: 修改report.xml文件后记得在saiku上替换report.xml文件,然后退出 saiku 重新登录,记得清除浏览器的缓存信息!!!
最后请记得配置:
1》 如果不是Advance里面进行配置数据源的话就在配置datasources最后 security 处选择: One To One Mapping
2》 如果是在A大V安策出配置的需要在数据源连接的配置中加入如下两个参数:
security.enabled=true
security.type=one2one
<!--配置权限--> <Role name="ROLE_READ"><!-- ROLE_READ访问Cube:测试数据量1w, NB_監測指標1_新單清潔單從登記到待發出保單rs_nbjc_1_1,NB_監測指標1_新單所有待發出保單rs_nbjc_1_2 --> <SchemaGrant access=‘none‘> <CubeGrant cube=‘测试数据量1w‘ access=‘all‘ /> <CubeGrant cube=‘NB_監測指標1_新單清潔單從登記到待發出保單rs_nbjc_1_1‘ access=‘all‘ /> <CubeGrant cube=‘NB_監測指標1_新單所有待發出保單rs_nbjc_1_2‘ access=‘all‘ /> <CubeGrant cube=‘SummaryKpi匯總數據‘ access=‘all‘ /> </SchemaGrant> </Role> <Role name="ROLE_USER"><!--ROLE_USER不能访问 --> <SchemaGrant access=‘none‘ /> </Role> <Role name="ROLE_ADMIN"><!--ROLE_ADMIN访问所有 --> <SchemaGrant access=‘all‘ /> </Role>
原文地址:https://www.cnblogs.com/DFX339/p/10318098.html