前言:BIEE11g的权限较之前10g版本有了较大的变化,最明显的地方就是构架上的变化,其与 Oracle Fusion Middleware Security 紧密的集成在了一起。

在开始之前先让我们来了解一些基本概念:

1、认证(Authentication):所谓认证,就是校验用户名和密码是否正确,正确就通过认证,反之则不通过

2、授权(Authorization):授权就是给用户赋予相应的权限,比如userA是否可以查看报表B。

用户登录BIEE的过程,就包含这两个过程;首先用户提供用户名和密码交由BIEE校验,如果正确才会进行授权,否则直接提示用户名密码错误。要记住,认证和授权是分离的!

在10g的时候,默认情况下(不考虑LDAP和外部表),用户和组的信息是存在RPD里的。而11g则存放到了与之关联的Weblogic域内置LDAP服务器里了。同时,在10g的时候存在用户和组(Group)的概念,11g则新引入了角色的概念(Role),并将BIEE内部权限的授予对象变成了现在的用户和角色(Role)。

简单来说,你可以把11g中的角色(Role)等于同10g的组(Group),那么11g的组(Group)呢?他又是干什么的呢?其实这个组是位于内置LDAP服务器里的组,其对BIEE来说不可见。组和角色的分离有什么好处呢?

1、可以在不变更企业已有LDAP服务里用户和组的情况下,将它们映射到BIEE的角色上。因为LDAP服务器通常是全局的,多系统共用的,没必要为BIEE权限的需求而到LDAP里去新建组。另外,你也可以在不改变角色在BIEE内部授权的情况下,通过重新映射组和角色的关系实现认证源(LDAP服务器)的迁移。
2、便于成批添加用户到角色里。由于BIEE的授权对象是用户和角色,虽然用户可以直接挂载到角色上,但是比起把一百个用户添加到一个角色下,和把这一百用户所属的组添加到角色上,哪个更容易?
11g组和角色的关系如下图所示:

这是安装完毕之后默认的权限配置情况,可以看到User1,User2,User3属于BIConsumers这个组,BIConsumers这个组属于BIConsumer这个角色,依此类推。另外还要注意到角色之间是有继承关系的,而组之间是没有继承关系的。

组是存放在Weblogic的内置LDAP服务器里的(为了方便,通常我们可能会说其存在console里的,因为我们是使用console来管理weblogic服务器)

角色是存放在Policy Store里的(默认是基于xml文件的,名叫system-jazn-data.xml),其通过 Oracle Enterprise Manager 来进行管理的(同样的,通常我们也会说其是存放在em里的)。

Note:

console的访问方式 http://xxxx:7001/console

em的访问方式 http://xxxx:7001/em

说的这里,不知道大家有没有疑惑,BIEE是怎么知道用户A应该能看哪些报表,不能看哪些报表的呢?怎么让用户B能有新建分析的权限,而用户A没有呢?
这里要引入一个安全策略(Security Policy)的概念(通俗的讲就是权限)。
这个策略主要有如下三块:
1、RPD:RPD里可以定义字段和表的权限,比如用户A能不能访问表A;这些权限在你访问BIServer的时候会被应用。
2、Catalog:用户能看哪些报表,能使用哪个功能都是在Catalog里定义的;这些权限在你访问Answer和Dashboard的时候会应用。
3、PolicyStore:这里面定义了哪些用户或者角色可以使用BI Server\BIP\RTD的哪些功能;比如什么用户可以使用Admin Tools联机打开RPD。
所谓的策略,其实就是一些记录,只是这些记录存储的位置各不相同。如下图所示:

细心的朋友可能会发现图中有一个Credential
Stores的东西我们还没提到,它是干什么的呢?顾名思义,其就是用来存放一些凭据(比如密码)的,大家都知道11g的RPD是有密码的,这个密码是我们自定义的,那我们把这个RPD上传到服务器之后,服务器怎么能打开这个RPD呢?它也得需要密码啊,既然需要,那么就得有一个地方来存储这个密码吧?
没错,这个密码就是存放在Credential Stores里的。同样的还是一些系统用户的密码也是存放在这里的,具体的我们在之后的帖子里在讲解。

下面我们来串一下整个登录过程,回答一下前面的问题,结束今天的内容。

假设已知用户A属于角色ROLEA,且我们只对角色进行了授权,ROLEA可以查看Revenue By Year这张报表(ROLEA可以查看这张报表的记录就存在与报表同名的*.atr文件中)。
当用户A登录BIEE的时候,BIEE会去Policy Store 查到其属于ROLEA(用户所属的角色信息,可以在BIEE的我的帐户菜单中看到),并记录到session的安全变量中;登录成功之后
用户A点击Revenue By Year这张报表的时候,系统就会去查询这张报表的安全策略,发现里面有一条记录写着ROLEA可以访问这张报表,那么用户A就可以看到报表的内容了,反之则不能。
今天我们就来讲讲11g的默认权限(即软件安装完毕之后BIEE的一些初始化权限配置)。
不知道大家还记不记得,在10g的时候,RPD中存在一个名叫Administrator的用户,这个用户就是管理员用户,其拥有最高权限。
到了11g,由于架构的变化,帐号密码之类的信息已经从RPD中移到了Weblogic内置的LDAP服务器里了。
且用户名默认为weblogic,密码则在安装过程中指定。
如果我们想要修改用户名密码、增删用户,那么我们就得使用Weblogic的控制台,这里一个基于web的管理程序,用于管理Weblogic服务器
默认访问路径为:
http://主机名:7001/console
注:使用weblogic及安装过程中指定的密码登录

默认的用户、组及角色如下图所示:

大家可以看到组和角色之间是有对应关系的
组BIConsumers挂在角色BIConsumer之下
组BIAuthors挂在角色BIAuthor之下
组BIAdministrators挂在角色BIAdministrator之下
这个“挂”的操作是在EM中完成的
注:至于为什么引入组和角色,大家可以参见我之前的帖子。
既然组和角色之间的关系已经定义好,那么我们在新建用户,或者想更改用户当前的权限的时候,就可以只用在console把将用户加到对应的组里就可以了。
如果现有的配置满足不了我们的需求,我们才会考虑在console中新建新的组,并将其“挂”到相应的角色(可以根据需要新建或利用现有角色)上;最终在BIEE系统中,我们只能对用户或者角色进行授权。
下面我们来看看应该如何进一些用户管理方面的常规操作吧。
1、新建用户
登录console,点击左侧的“安全领域(Security Realms)”然后选择“myrealm”-“用户和组(Users and Groups)”选项卡,如下图所示:

点击左下角的“new”按扭,就可以新建用户了;同理,切换到“组(Groups)”标签,就可以新建组了,具体过程大家可以按提示操作即可。

2、给用户分配组
创建好的用户就会出现在第1步“用户(Users)”标签下面的列表中:

点击我们想要分配组的用户名,进入用户属性设置界面,可以看到有4个标签

可供我们修改的主要是“密码(Passwords)”和“组(Groups)”两个标签,这里先选择组标签,
然后勾选我们需要分配的组,接着点右中间的右箭头,然后点击“save”,就可以把用户加入该组之中。
3、修改密码
在第2步的界面中,选择“密码(Passwords)”标签,即可修改用户的密码。建好了用户和组,接下来我们需要创建角色了。虽然角色不是必须的,但是通常来说我们都是对角色而不是用户来进行授权。

为什么?

因为角色(用户)在报表上的权限是直接写到对应报表同名的atr文件中的,如果有100个用户需要访问某一张报表,按照用户授权的方式我们就需要对该报表操作一100次,以完成对100个用户的授权;而采用角色的方式,我们可能只需要创建一个角色,然后在报表上对该角色授一次权,最后把100个用户挂到这个角色上就可以了。

看到这里,也许有朋友会问了,虽然后者你只授一次权,但是你需要把100用户添加到这个角色里,你得添加100次啊。没错,不过把用户添加到角色里就相对来说要容易得多了。

因为虽然默认情况下BIEE是使用的Weblogic内置的LDAP作为认证源,且只能通过console来管理用户(console用户的管理功能太薄弱),但是实际上在真正的企业应用环境中,我们都会将BIEE与企业已有的认证源(企业已有的LDAP服务器或者存放了用户信息的关系数据库)进行集成,而这些认证源中通常都会有组的概念,且可以支持批量添加用户到组的操作,我们只需简单把组和角色做一个映射就可以完成用户到角色的关联。

Biee 11g权限详解的更多相关文章

  1. 【Linux学习】Linux下用户组、文件权限详解

    原文地址:http://www.cnblogs.com/123-/p/4189072.html Linux下用户组.文件权限详解 用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在li ...

  2. Linux "ls -l"文件列表权限详解

    ls Linux "ls -l"文件列表权限详解 1.使用 ls -l 命令 执行结果如下(/var/log) : drwxr-x--- root adm -- : apache2 ...

  3. MySQL权限详解

    MySQL权限级别介绍 MySQL权限级别 全局性的管理权限,作用于整个MySQL实例级别 数据库级别的权限,作用于某个指定的数据库上或者所有的数据库上 数据库对象级别的权限,作用于指定的数据库对象上 ...

  4. Linux 用户及权限详解

    Linux 用户及权限详解 用户 , 组 ,权限 安全上下文(secure context): 权限: r,w,x 文件: r : 可读,可以使用类似cat 等命令查看文件内容. w : 可写,可以编 ...

  5. Linux之权限详解

    如何知道你有什么权限 我能干什么?这是我最关心的问题! 切换到普通用户 [root@luffy-01 ~]# su - pizza [pizza@luffy-01 ~]$ ls /root ls: c ...

  6. Linux学习之文件特殊权限详解(SetUID、SetGID、Sticky BIT)(十一)

    Linux学习之文件特殊权限详解(SetUID.SetGID.Sticky BIT) 目录 SetUID SetGID Sticky BIT SetUID SetUID简介 只有可以执行的二进制程序和 ...

  7. Linux学习之ACL权限详解(十)

    Linux系统ACL权限详解 目录 ACL权限简介与开启 查看与设定ACL权限 最大有效权限与删除ACL权限 默认ACL权限和递归ACL权限 ACL权限简介与开启权限 ACL权限简介 用户权限管理始终 ...

  8. Linux权限详解 命令之 chmod:修改权限

    权限简介 Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功. Linux下文件的权限类型一般包括读,写,执行.对应字母为 r.w.x. Li ...

  9. linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解

    文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...

随机推荐

  1. 用c#开发微信 (4) 基于Senparc.Weixin框架的接收事件推送处理 (源码下载)

    本文讲述使用Senparc.Weixin框架来快速处理各种接收事件推送.这里的消息指的是传统的微信公众平台消息交互,微信用户向公众号发送消息后,公众号回复消息给微信用户.包括以下类型: 1 subsc ...

  2. jquery内容选择器(匹配包含指定选择器的元素)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Android中自定义ProgressBar

    <ProgressBar             android:id="@+id/more_vprogress_more"             android:layo ...

  4. jquery的ajax可以传入的三种参数类型

    在jquery的ajax函数中,可以传入3种类型的数据 1.文本:"uname=alice&mobileIpt=110&birthday=1983-05-12" 2 ...

  5. Scalaz(37)- Free :实践-DB Transaction free style

    我一直在不断的提示大家:FP就是Monadic Programming,是一种特殊的编程风格.在我们熟悉的数据库编程领域能不能实现FP风格呢?我们先设计一些示范例子来分析一下惯用的数据库编程过程: i ...

  6. xcode8 关闭控制台打印不用信息

    控制台打印的信息如下 -- :::] subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: , persist_l ...

  7. redis持久化机制

    redis持久化 redis的数据存在内存中,所以存取性能好.但是存在内存中的数据存在一个问题,一旦机器重启,内存数据消失.为了解决这个问题,redis支持持久化.持久化就是为了解决内存数据丢失时恢复 ...

  8. CI框架源码阅读笔记2 一切的入口 index.php

    上一节(CI框架源码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程,这里再次贴出流程图,以备参考: 作为CI框架的入口文件,源码阅读,自然由此开始.在源码阅读的过程中, ...

  9. GJM : 数据结构 - 轻松看懂机器学习十大常用算法 [转载]

     转载请联系原文作者 需要获得授权,非法转载 原文作者将享受侵权诉讼 文/不会停的蜗牛(简书作者)原文链接:http://www.jianshu.com/p/55a67c12d3e9 通过本篇文章可以 ...

  10. 那些年,我们一起疯狂的C#

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...