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,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

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

Saiku权限控制(四)的更多相关文章

  1. Laravel 5.1 ACL权限控制 四 之middleware

    1.创建Middleware php artisan make:middleware MustBeAnAdmin 2.实现 MustBeAnAdmin.php中的handle方法,判断登录的用户是否为 ...

  2. shiro权限控制入门

    一:权限控制两种主要方式 粗粒度 URL 级别权限控制和细粒度方法级别权限控制 1.粗粒度 URL 级别权限控制 可以基于 Filter 实现在数据库中存放 用户.权限.访问 URL 对应关系, 当前 ...

  3. Java基础之访问权限控制

    Java基础之访问权限控制 四种访问权限 Java中类与成员的访问权限共有四种,其中三种有访问权限修饰词:public,protected,private. Public:权限最大,允许所有类访问,但 ...

  4. 认证鉴权与API权限控制在微服务架构中的设计与实现(四)

    引言: 本文系<认证鉴权与API权限控制在微服务架构中的设计与实现>系列的完结篇,前面三篇已经将认证鉴权与API权限控制的流程和主要细节讲解完.本文比较长,对这个系列进行收尾,主要内容包括 ...

  5. webapi框架搭建-安全机制(四)-可配置的基于角色的权限控制

    webapi框架搭建系列博客 在上一篇的webapi框架搭建-安全机制(三)-简单的基于角色的权限控制,某个角色拥有哪些接口的权限是用硬编码的方式写在接口上的,如RBAuthorize(Roles = ...

  6. 项目一:第十二天 1、常见权限控制方式 2、基于shiro提供url拦截方式验证权限 3、在realm中授权 5、总结验证权限方式(四种) 6、用户注销7、基于treegrid实现菜单展示

    1 课程计划 1. 常见权限控制方式 2. 基于shiro提供url拦截方式验证权限 3. 在realm中授权 4. 基于shiro提供注解方式验证权限 5. 总结验证权限方式(四种) 6. 用户注销 ...

  7. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十四):权限控制(Shiro 注解)

    在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 技术背景 当前,我们基于导航菜单的显示和操作按钮的禁用状态,实现了页面可见性和 ...

  8. (二十四)权限控制(粗粒度)-通过filter

    扩展:权限控制(粗粒度)-通过filter 过滤器编写步骤: 1.编写一个类 实现filter接口 重写方法 2.编写配置文件 <filter> <filter-mapping> ...

  9. MongoDB 安全和访问权限控制

    MongoDB的访问控制能够有效保证数据库的安全,访问控制是指绑定Application监听的IP地址,设置监听端口,使用账户和密码登录 一,访问控制的参数 1,绑定IP地址 mongod 参数:-- ...

随机推荐

  1. MySQL学习(十四)

    utf8的bom问题 在xp下,用记事本创建utf8文件的时候,前面多了3个字节,这3个字节不用来显示,是用来辨识编码用的,EF BB BF告诉记事本,这是utf8编码. 存储引擎和事务简单介绍 引擎 ...

  2. (转)Lua的table库函数insert、remove、concat、sort详细介绍

    原帖链接:http://www.jb51.net/article/64711.htm#comments 有增注标识的地方为额外注释,非原帖内容. 函数列表:(增注:只能用于数组!) table.ins ...

  3. Python -- jpype JVM的第三方库使用

    Python -- jpype 安装 jpype 如图:直接执行 命令:pip install jpype 可见失败,提示没有版本信息 可以使用 pip  search jpype 查看相关版本信息 ...

  4. Python全栈开发-有趣的小程序

    进度条的打印 import sys,time for i in range(20): sys.stdout.write('$')      #stdout是标准输出的意思,在一般电脑上,stdout的 ...

  5. legend2---开发日志5(如何解决插件的延迟问题,比如vue)

    legend2---开发日志5(如何解决插件的延迟问题,比如vue) 一.总结 一句话总结:元素可以先设置为隐藏,这样就不会让用户看到延迟的问题,然后等加载完再显示, 元素先设置为隐藏 加载完再显示 ...

  6. boke练习: @PreAuthorize authentication.name.equals的数据绑定与验证

    boke练习: @PreAuthorize authentication.name.equals的数据绑定与验证 先看2个简单的例子: 一 @PostMapping("/{username} ...

  7. 4步win7下简单FTP服务器搭建(试验成功)

    本文介绍通过win7自带的IIS来搭建一个只能实现基本功能的FTP服务器,第一次装好WIN7后我愣是没整出来,后来查了一下网上资料经过试验后搭建成功,其实原理和步骤与windows前期的版本差不多,主 ...

  8. caffe---mnist数据集训练与测试

    1.数据.mnist_test_lmdb和mnist_train_lmdb数据 2.路径. (1)修改lenet_train_test.prototxt文件,训练和测试两处 source: " ...

  9. Confluence 6 如何保持我空间的整洁

    如果你有很多用户在同一个空间中编辑和创建内容,你的空间将会很快的变得混乱不堪.你可以使用下面的一些步骤来避免这个的发生. 创建一系列的指南 让你的合作编辑用户知道创建页面的上级页面是什么,这样可以保证 ...

  10. 架构探险笔记5-使框架具备AOP特性(下)

    开发AOP框架 借鉴SpringAOP的风格,写一个基于切面注解的AOP框架.在进行下面的步骤之前,确保已经掌了动态代理技术. 定义切面注解 /** * 切面注解 */ @Target(Element ...