一:概要描述

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用户库的更多相关文章

  1. Cognos11第三方权限认证之OpenDJ

      一.安装OpenDJ 安装java环境,配置OPENDJ_JAVA_HOME环境变量指向java,然后傻瓜安装,出现下面的界面则说明安装成功 注意安装的过程中会指定管理用户cn的密码,默认的cn是 ...

  2. Oracle 用户和权限

    Oracle 用户和权限Oracle 中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在 Oracle中非常 ...

  3. Cognos权限认证CJP方式之用户密码加密

    在项目开发过程中,用户往往对系统的安全都有明确的要求,下面针对cognos门户认证用户密码如何加密来提供一个简单的wf 1Cognos权限认证方式:CJP 2Cognos用户数据库类型:Oracle ...

  4. Cognos第三方用户认证(CustomJavaProvider)

    关于Cognos第三方用户认证(CustomJavaProvider)的demo网上的例子很多,当然最权威的你可以从Cognos安装的SDK中去探索,本文不详细的说明代码,主要说一下认证的处理过程,以 ...

  5. oracle同一个库上面,不同用户相互赋予权限

    用法: 有两个用户:user1和user2,都是在库TEST上,分别有表user1.table1,user2.table2 但是用user1登录的时候,user2上表就不能用,此时就可以使用grant ...

  6. Oracle用户,权限,角色以及登录管理 scoot 授权

    Oracle用户,权限,角色以及登录管理 1. sys和system用户的区别 system用户只能用normal身份登陆em.除非你对它授予了sysdba的系统权限或者syspoer系统权限. sy ...

  7. Oracle用户、权限、角色管理(转)

    http://blog.csdn.net/junmail/article/details/4381287 Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户 ...

  8. Oracle用户、权限、角色管理

    Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的).   二.系统权 ...

  9. MongoDB用户权限认证

    关于用户的认证及权限 用户是跟着库创建的,在哪个库创建的什么权限的什么用户,只对此库有相应权限(除超级管理员以外). 官网文档:https://docs.mongodb.com/master/refe ...

随机推荐

  1. 【WIN10】使用VS生成appx安裝包,並安裝測試

    就算沒有微軟開發者帳號,我們也是可以創建appx的. 只不過有了帳號,我們可以把這個APPX與商店中的應用關聯,並上傳,方便許多罷了. 下面就說步驟: 1.生成appx 1)菜單:項目->應用商 ...

  2. 订单超时、活动过期解决方案:php监听redis key失效触发回调事件

    Redis 的 2.8.0 版本之后可用,键空间消息(Redis Keyspace Notifications),配合 2.0.0 版本之后的 SUBSCRIBE 就能完成这个定时任务的操作了,定时的 ...

  3. BZOJ 4213 贪吃蛇 上下界费用流 网络流

    https://darkbzoj.cf/problem/4213 https://www.cnblogs.com/DaD3zZ-Beyonder/p/5733326.html 题目描述 dbzoj又崩 ...

  4. shellcode在栈溢出中的利用与优化

    0x00 前言 在<Windows Shellcode学习笔记——shellcode的提取与测试>中介绍了如何对shellcode作初步优化,动态获取Windows API地址并调用,并通 ...

  5. 【洛谷】2602: [ZJOI2010]数字计数【数位DP】

    P2602 [ZJOI2010]数字计数 题目描述 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 输入输出格式 输入格式: 输入文件中仅包含一行两个整数a ...

  6. 洛谷P2657 Loj10165 SCOI2009 windy数

    题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B,总共有多少个windy数? 输入输出格式 输 ...

  7. Mac OSX系统下通过ProxyChains-NG实现终端下的代理

    项目主页:https://github.com/rofl0r/proxychains-ng 官方说明: proxychains ng (new generation) - a preloader wh ...

  8. windows下tomcat的安装配置

    一.下载相应的JDK以及tomcat的版本 JDK:jdk-8u131-windows-x64 tomcat:apache-tomcat-8.5.23-windows-x64.zip 二.JDK的安装 ...

  9. Notepad++源代码阅读——窗口元素组织与布局

    1.1 前言 这两天在看notepad++ 1.0版本的源代码.看了许久终于把程序的窗口之间的关系搞清楚了现在把其组织的要点写于此,希望对大家有所帮助. 1.2 窗口元素之间的关系 Notepad++ ...

  10. 轨至轨运算放大器 rail to rail

    http://www.360doc.com/content/10/1102/16/2285160_66006645.shtml Rail to rail: 轨至轨,指器件的输入输出电压范围可以达到电源 ...