Saiku权限控制(四)

时间:2021-10-15 17:37:44

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 ,保存用户信息。

Saiku权限控制(四)

二、文件以及目录权限控制

以管理员的身份 admin用户登录系统,进入文件目录

1> 打开Reporitory(存储文件信息的仓库)

2> 进入datasources目录 (用于保存配置好的报表数据的文件目录) 

3> 点击右侧的 人物标识图标 ,点击后弹出右侧框框 【如果不选择具体的文件则是对datasources目录做权限控制,如果选中了具体文件再点击右侧 人物标识图标 则是对具体文件做权限控制】

4> 添加角色信息 输入角色名称 ROLE_READ (这里的角色信息需在UserManager已经添加或者系统已经存在的角色信息)

5> 选定角色权限 读、写、同意,  读(意思是指定角色能读取此目录的信息,能写数据进入当前目录或者修改数据,能修改目录的权限信息)

6> 点击添加按钮,就会在角色框看到刚刚添加的角色信息

7> 再点击下方的 OK 按钮,则添加成功。

8> 可退出系统,重新启动saiku服务器,登录拥有指定权限角色的用户信息,然后就能进行验证。 report用户登录,就会发现report用户登录后只能看到datasources目录,但是无法做修改或新增数据信息。

注意: Admin用户能看到所有用户的目录信息

Saiku权限控制(四)

三、 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,NB2 -->
<SchemaGrant access='none'>
<CubeGrant cube='测试数据量1w' access='all' />
<CubeGrant cube='NB' access='all' />
<CubeGrant cube='NB2' access='all' />
<CubeGrant cube='Summary' access='all' />
</SchemaGrant>
</Role> <Role name="ROLE_USER"><!--ROLE_USER不能访问 -->
<SchemaGrant access='none' />
</Role> <Role name="ROLE_ADMIN"><!--ROLE_ADMIN访问所有 -->
<SchemaGrant access='all' />
</Role>

 

admin用户登录的效果图:(能看到所有的数据源信息) 角色:ROLE_ADMIN

Saiku权限控制(四)

report用户登录的效果图: 只能看到指定的cube数据源信息 角色:ROLE_READ

Saiku权限控制(四)