前言: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. qt 自动产生 Guid 方法

    strcpy(cmd->uid,QUuid::createUuid().toString().toStdString().c_str());

  2. WIN-CE系统架构

    WIN-CE 系统架构分为素部分:硬件层.OEM 层.操作系统层.应用层 http://hovertree.com/hvtart/bjae/oy9pqb94.htm 硬件层: 由CPU .存储器.I/ ...

  3. java中实现同步的两种方式:syschronized和lock的区别和联系

    Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我 ...

  4. C#网站发布在IIS10上,Access数据库读取为空白的解决方案

    打开IIS10,进入应用程序池,右边“设置应用程序池默认设置”中,启用32位应用程序,False改为True即可.

  5. ROW_NUMBER、RANK()、DENSE_RANK()和OVER的使用

    /*以FoodPrice列排序并显示排序后的行号*/ SELECT ROW_NUMBER() OVER(ORDER BY FoodPrice DESC) AS RowId,* FROM dbo.Foo ...

  6. HTTP狀態碼

    1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试 ...

  7. NHibernate可视化设计插件——Mindscape.NHibernateModelDesigner

    我一直希望NHibernate能够支持像EF一样支持可视化操作,今天去网上搜了一下,发现有一个插件,类似EF的可视化功能. 下载地址:Mindscape.NHibernateModelDesigner ...

  8. Redis 3.2.1集群搭建

    一.概述 Redis3.0版本之后支持Cluster. 1.1.redis cluster的现状 目前redis支持的cluster特性: 1):节点自动发现 2):slave->master ...

  9. 15款帮助你实现响应式导航的 jQuery 插件

    对于我们大多数人来说,建立一个负责任的布局中最困难的方面是规划和导航的实现.由于没有真正经得起考验的通用解决方案,您可以使用的菜单设计风格将取决于正在建设的网站类型. 无论你正在建设什么类型的网站,在 ...

  10. 15个优秀的 Material Design(材料设计)案例

    Material Design (材料设计)是由谷歌创建和设计的一种设计语言,结合成功的设计的经典原则以及创新科技.谷歌的目标是开发一个设计系统,让所有的产品在任何平台上拥有统一的用户体验.全新的设计 ...