Cognos第三方权限认证Oracle用户库
一:概要描述
1.1:项目背景
Cognos具有强大的报表功能,但是却没有提供一个完善的用户管理体系,针对商业智能系统对数据的安全性要求,我们必须实现不同用户对不同数据的访问,确保企业级以及部门级的数据安全.
1.2:功能描述
权限管理模块将实现Cognos Connection对具有不同角色用户的访问限制。有目的的为特定角色指定访问内容,而且可以精确到同一模型中的不同的维度值.
二:实现机制
2.1:用户角色表结构设计
2.1.1:用户表设计
create table COGNOS_USERS
(
user_id VARCHAR2(20) not null,
user_name VARCHAR2(50),
user_pass VARCHAR2(50)
)
2.1.2:角色表设计
create table COGNOS_ROLE
(
role_id VARCHAR2(20) not null,
role_name VARCHAR2(50)
)
2.1.3:用户角色对应表设计
create table COGNOS_ROLE_USER
(
role_id VARCHAR2(20) not null,
user_id VARCHAR2(20) not null
)
2.1.4:三个表的关系设计
用户表 user_name user_id user_pass |
用户角色表role_id user_id |
用户表 role_id role_name |
2.1.5:创建用户角色视图
create or replace view cognos_view as
select u.user_id,u.user_name,1 issqluser, 0 issqlrole,u.user_chinisename givenname from cognos_users u
union all
select r.role_id,r.role_name,0 issqluser, 1 issqlrole,r.role_name givenname from cognos_role r;
2.2:基于SDK的二次开发
2.2.1:安装SDK的过程
安装过程和安装cognos其他组件一样,和cognos安装在同一个目录上。安装后在安装目录下面D:\Program Files\ibm\cognos\c10就会多出关于SDK的目录 ,如下图:则说明安装成功了
2.2.2:基于JAVA的用户身份验证开发
2.2.2.1:从SDK中提取工具类和demo类
进入D:\Program Files\ibm\cognos\c10\sdk\java\AuthenticationProvider目录,将adapters文件夹下的.java文件都copy到java project中,如下图:
将JDBCSample文件夹下的.java文件都copy到java project中,如下图:
2.2.2.2:修改主要查询类和驱动类的关键代码
JDBCSample.java 程序入口类
JDBCVisa.java 用户凭证类
MS_JDBCDriver.java数据库驱动类
QueryUtil.java查询工具类
PasspodMessage 此类是一个Boolean类型的类,可有可无,项目中可以用boolean类型的变量来处理。
黄色背景的类基本上都需要修改,改为和自己用户数据库相匹配的代码,数据库驱动类也要和用户所属的数据库类型驱动相同。
2.3:权限管理配置过程
2.3.1:生成所需jar包
(1)认证程序核心jar包
将开发的java project导出成jar文件的格式,比如Intrust.jar
(2)定义数据库配置文件
JDBC_Config_Intrust.properties格式注意和入口类中读取配置信息的规则保持一致,比如Intrust和NameSpaceID保持一致,当然这里也可以随意写,在java类读取配置文件信息的时候写死也是可以的
内容如下:
Oracle
# Licensed Materials - Property of IBM
#
# IBM Cognos Products: CAMAAA
#
# (C) Copyright IBM Corp. 2005, 2011
# # US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
# IBM Corp.
server=128.8.28.212
databaseName=cognos
Sqlserver
server=localhost:1433
databaseName=CognosSecurity
username=wxj
password=wxj1988
(3)数据库驱动程序
注意自己用户库的类型,SqlServer和oracle有所不同,我这里是ojdbc5.jar
2.3.2:cognos安装目录中配置文件的添加
[1]:将intrust.jar与ojdbc5.jar添D:\Program Files\ibm\cognos\c10\webapps\p2pd\WEB-INF\lib目录下
[2]:将JDBC_Config_Intrust.propertiesr添加到D:\Program Files\ibm\cognos\c10\configuration目录下
2.3.3:cognos configuration 中用户认证空间的配置
2.3.3.1:新建namespace认证空间
2.3.3.1.1:新增一个名称空间
示打开Cognos configuration设置界面,关闭Cognos服务,找到 安全-身份验证,如下图
2.3.3.1.2:为新增名称空间指定名称-选择名称空间的类型
2.3.3.1.3:设置名称空间的属性
PS:注意java入口类的名称就是java project中的包级别绝对路径名称
2.3.3.1.4:测试名称空间是否通过验证
PS:如果初次配置,提示无法加载java类的话,就关掉cognos configuration界面,再次打开重新测试即可OK
2.3.3.1.5设置默认cognos名称空间
点击cognos名称空间,设置名称空间的默认属性,将匿名登陆设置为false
三:呈现效果
3.1:Cognos系统效果实现
3.1.1访问cognos connection时提示登陆
用提前设计好的用户表中的用户名和密码登陆访问Cognos
3.1.2登陆通过Cognos的验证
3.1.3安全界面显示用户库的所有角色和用户
3.2:第三方系统权限管理
3.2.1:登陆系统实现效果
在登陆系统的时候,验证用户名是否存在,如果存在则同时实现Cognos系统的单点登陆,当用户点击报表菜单的时候,不再提示登陆Cognos系统,而是直接可以看到报表的具体内容
3.2.2:菜单报表访问效果
对菜单层做一个权限的处理,即不同的用户登陆系统只可以看到自己角色可以看到的报表菜单。
。
Cognos第三方权限认证Oracle用户库的更多相关文章
- Cognos11第三方权限认证之OpenDJ
一.安装OpenDJ 安装java环境,配置OPENDJ_JAVA_HOME环境变量指向java,然后傻瓜安装,出现下面的界面则说明安装成功 注意安装的过程中会指定管理用户cn的密码,默认的cn是 ...
- Oracle 用户和权限
Oracle 用户和权限Oracle 中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在 Oracle中非常 ...
- Cognos权限认证CJP方式之用户密码加密
在项目开发过程中,用户往往对系统的安全都有明确的要求,下面针对cognos门户认证用户密码如何加密来提供一个简单的wf 1Cognos权限认证方式:CJP 2Cognos用户数据库类型:Oracle ...
- Cognos第三方用户认证(CustomJavaProvider)
关于Cognos第三方用户认证(CustomJavaProvider)的demo网上的例子很多,当然最权威的你可以从Cognos安装的SDK中去探索,本文不详细的说明代码,主要说一下认证的处理过程,以 ...
- oracle同一个库上面,不同用户相互赋予权限
用法: 有两个用户:user1和user2,都是在库TEST上,分别有表user1.table1,user2.table2 但是用user1登录的时候,user2上表就不能用,此时就可以使用grant ...
- Oracle用户,权限,角色以及登录管理 scoot 授权
Oracle用户,权限,角色以及登录管理 1. sys和system用户的区别 system用户只能用normal身份登陆em.除非你对它授予了sysdba的系统权限或者syspoer系统权限. sy ...
- Oracle用户、权限、角色管理(转)
http://blog.csdn.net/junmail/article/details/4381287 Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户 ...
- Oracle用户、权限、角色管理
Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权 ...
- MongoDB用户权限认证
关于用户的认证及权限 用户是跟着库创建的,在哪个库创建的什么权限的什么用户,只对此库有相应权限(除超级管理员以外). 官网文档:https://docs.mongodb.com/master/refe ...
随机推荐
- Redis 连接命令
1.AUTH password 验证密码是否正确 2.ECHO message 打印字符串 3.PING 查看服务是否运行 4.QUIT 关闭当前连接 5.SELECT index 切换到指定的数据库
- 【贪心】【字典树】Gym - 101466A - Gaby And Addition
题意:定义一种无进位加法运算,给你n个正整数,问你取出两个数,使得他们加起来和最大/最小是多少. 无进位加法运算,其实是一种位运算,跟最大xor那个套路类似,很容易写出对于每个数字,其对应的最优数字是 ...
- VC被控制时关闭极域电子教室、破解联想硬盘保护系统密码(上)
<[原]关于VC运行时关闭极域电子教室的改进方法> 本文将讲资料和方法,具体实现和破解联想硬盘保护系统密码在(下)中,有关破解联想硬盘保护系统(删除它)的方法很简单,用硬盘保护卡克星就可以 ...
- SLF4J versions 1.4.0 and later requires log4j 1.2.12 or later 终极解决
http://blog.sina.com.cn/s/blog_54eb26870100uynj.html 到SLF4J官方网站:http://www.slf4j.org/codes.html#log4 ...
- Ruby on rails配置环境问题【慢慢添加】
1, ruby -v 与 rvm list 显示不同的版本号 ,使用rvm use 2.2.3后,报如下错误: RVM is not a function 解决办法: $ source ~/.rv ...
- 监听当点击微信等app的返回按钮或者浏览器的上一页或后退按钮的事件
在实际的应用中,我们常常需要实现在移动app和浏览器中点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面或执行一些其它操作的 需求,那在代码中怎样监听当点击微信.支付宝.百度糯米.百度钱包 ...
- 【转 记录】python中的encode以及decode
字符串编码常用类型:utf-8,gb2312,cp936,gbk等. python中,我们使用decode()和encode()来进行解码和编码 在python中,使用unicode类型作为编码的基础 ...
- mac下git+maven+jenkins自动打包发布
随着springboot+springcloud(dubbo)越来越多人使用,流行的微服务的概念越来越深入人心.分布式部署越来越复杂,给手动发布带来很大工作量.为了方便前期测试和后期线上部署更新,可使 ...
- SSM框架搭建问题
环境: 1.eclipse Kepler Service Release 2 2.jdk 1.8 64 3.maven 3.5 4.tomcat 8 问题:
- PHP个人博客系统开发历程
声明: Author:GenialX GenialX's QQ:2252065614 GenialX's URL:胡旭博客 - www.ihuxu.com 一年多曾经的某一天,我在上交实验报告时,偶然 ...