当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
Oracle认证考试辅导:初始化块与数据库查询控制验证和授权
发布时间:2010/3/31 17:39:57 来源:城市学习网 编辑:admin

  初始化块与数据库查询控制验证和授权
  在这里我要实现的是使用一个现有的LDAP服务器来验证正在登录到OBIEE的用户凭证。要建立它,首先打开管理员工具然后在Manager-Security…工具里定义一个新的LDAP服务器:
  在这里你输入的值当然是取决于你的系统,你的LDAP管理员可以提供给你你所需要的正确值。但是一旦你定义了一个LDAP服务器,我们就可以通过Manager-Variables…来启动工具,并开始工作。
  首先我们定义一个名称类似于LDAP Init Block的初始化块。一个初始化块需要一个数据源,所以我们点击“Edit Data Source…”按钮来定义,选择数据源类型:LDAP。点击“Browse…”按钮并选择我们之前定义的LDAP服务器。实际上你也可以在这里定义新的LDAP服务器,通过点击“New…”按钮(这会开始我们之前使用的相同向导)。
  接下来我们需要匹配LDAP属性和会话变量。点击“Edit Data Target…”按钮并添加下面的系统变
量:
  在创建每一个变量之后出现的警告对话框是很正常的,因为这些是系统的特殊变量。在你的LDAP服务器上LDAP变量字段可能不同,所以要确保你从LDAP管理员那里获得了正确的属性名称。关闭这个对话框并确保你选择了页面下部的“Required for Authentication”:
  注意“Test…”按钮。这是一个很好的特性,它使你可以调试你的块并可以对你的LDAP执行它。
  现在你应该可以使用存储在你的LDAP服务器上的凭证登录到BI状态面板。
  我们在这里生成的特殊系统会话变量还可以使用其它的初始化块来生成。假设你已经在一个数据库表中有了一些组,这个表像下面这样:
  CREATE TABLE OBIEE_USERS (USERNAME VARCHAR(100),GROUPNAME VARCHAR(2000))
  为了简化我假定我们只简单地将组存储为分号分开的列表,一个用户一条记录。
  现在我们希望为会话变量创建一个新的初始化块,它会在验证块启动之后启动:
  点击“Edit Data Source …”按钮并创建一个新的数据库类型的数据源。你输入的SQL应该像下面这样:
  select groupname
  from obiee_users
  where username=‘:USER‘
  确保这个用在你选择的连接池中的username具有对用来存储你的组权限的表SELECT的权限(并且不具有比这高的权限)。
  接下来我们需要定义要存储我们刚刚定义的数据源结果的变量。这个变量叫做GROUP,并且是在用户登录进去之后生成的。Presentation Service(表示服务)解析了这个变量并授权给用户访问变量里定义的以分号分开值的任何组的权限。任何不匹配的值都会被忽略掉。所以如果这个表包含类似于下面的信息:
  SCOTT SALES;Managers;Research and Development
  那么SCOTT将会被授权以访问他公司状态面板中定义的这三个组:SALES、 Managers和R&D。
  现在点击“Edit Data Target…”按钮并创建一个新的变量叫做GROUP:
  现在试着登录到状态面板上并看看活动中的块。确保在你的数据库表中的组真的在表示服务中定义了。一个好的和快速的测试是也为这些组创建状态面板。一旦你登录进去,你应该可以自动地被授权根据你表中的值访问不同状态面板的权限。
  如果你想使用相同的SQL语句生成更多的变量,那么确保查询中的字段顺序与“Data Target”设置中的变量顺序相匹配。

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved