首页 > 代码库 > BIEE 11g外部表做权限认证

BIEE 11g外部表做权限认证

1.数据库中创建用户表BIEE_AUTH:

  create table BIEE_AUTH ( USERID VARCHAR2(20), USERNAME VARCHAR2(20), USERPWD VARCHAR2(20), USERROLE VARCHAR2(100) );

  这里注意,用户有多个角色时,用“;”分开;USERROLE这个字段,如果用户角色较多,字段大小需按实际设定;如果想把数据权限都放在一个表里弄的话,估计表要重新设计,这个只是简单测试用。存的数据如下:

技术分享

 

2.RPD创建数据库及连接池及会话初始化块:

  新建DB和CP用来访问我们刚才新建的表,创建两个是为了不修改最佳实践的指导(第一个连接池不能用于初始化块),如下图:

技术分享

建初始化块,需要做的是命名(我这里叫auth),初始化字符串,选连接池,新建变量。

  点击“编辑数据源”去填写初始化字符串并选择连接池:

  select t.userid,t.userpwd,t.userrole from biee_auth t where upper(t.userid)=upper(‘:USER‘) and t.userpwd=‘:PASSWORD‘;

  连接池选中可以访问我们建的BIEE_AUTH表的,也就是DB Initial CP,选择好后效果如下:

技术分享

  点击“编辑数据目标”新增变量,这里需要新增三个变量,分别对应我们select后面的三个值,且顺序也要想对应,即:USER、PASSWORD、ROLES,其中USER、ROLES为系统变量,均不用设置默认值。如下:

技术分享

  完成上面步骤后,如下图,点击ok即可;

技术分享

技术分享

BIEE 11g外部表做权限认证