Cognos 权限管理之第三方目录管理员器、报表服务器权限管理、FrameWork权限管理等详细配置 【39页深度好文图文并茂带你全面了解Cognos权限管理】

浏览: 5952

一、引言

1.1. 编写目的

本文档是结合以往的开发经验,从实际报表开发出发,详细介绍了ReportNet报表设计流程、开发技巧,报表性能调优、FM建模规范及技巧讲解。总结的文档希望对大家在日后的开发中带来帮助。

1.2.开发工具

l  FrameWorkManager10.1.0模型

Business Intelligence Server 32-bit 10.1.0Windows Multilingual)报表服务器。

 

二、报表权限设置

2.1. 第三方目录管理器

众所周知,cognos自身并不带用户管理模块,需要嵌入第三方的用户管理,可以使用sunoneldap服务器作为用户管理模块的较为常见,采用第三方管理报表服务器权限,首先要先将报表服务器的匿名访问设置为false,之后介绍我所用过的几种第三方软件。

Clipboard Image.png

2.1.1.NTML

NTML在众多方法中最简单,也最实用。使用操作系统的用户账户来管理Cognos报表服务器的权限设置,即登录Cognos服务器的用户,也就是登录计算系统的用户。创建步骤如下:

1)   名称空间选择NTML

Clipboard Image.png

2)   Properties窗口中,对于NameSpaceID属性,指定唯一的标志符,如这块输入NTLM

Clipboard Image.png

3)   创建完成后,测试NTLM名称空间是否测试成功。

Clipboard Image.png

4)   配置完成后将使用简单文件共享的勾去掉,保存配置,然后启动Cognos服务器。

Clipboard Image.png

5)   登录报表服务器,选择NTLM名称空间,通过登录window的系统的用户名密码就能登录Cognos服务器了。

Clipboard Image.png

 

2.1.2. SunONE LDAP

快速安装Sun ONE服务器,然后在Sun One中配置用户和分组。SUN ONE的安装时,需注意以下两点:

1.   一定要装在英文目录下。否则JAVA安装的时候,会到中文路径下去寻找安装文件,而JAVA本身并不支持在中文下搜索程序的能力,因此会一直在搜索,所以安装的时候会提示整个界面一直卡住,而JAVA又报java.lang错误,提示超出最大长度。实际上,不是由于超出长度,而是由于中文不被识别。。。。会报如下的错误信息:

Clipboard Image.png

2.   设置计算机名,并增加后缀,如下:

Clipboard Image.png

 

准备好Sun One安装软件,下面介绍Sun One的具体安装。

Cognos 8.3 + Sun ONE LDAP 集成方案 http://www.flybi.net/blog/bacckom/659 

3.   下面是我在安装时的一些截图

 Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

 这块默认设的密码为admin1234,下面这块配置需要一定的时间,请耐心等待。

 Clipboard Image.png

Clipboard Image.png

登录成功后,选择User and Group,创建用户和分组

Clipboard Image.png

具体创建方法如下:

选择Create Use->Base DN(top level of The Usersand Group Tree)

Clipboard Image.png

Clipboard Image.png

创建分组,并指定用户所在的分组,选择Create Group-> Base DN(top level of TheUsers and Group Tree)

Clipboard Image.png

输入组名

Clipboard Image.png

添加成员

Clipboard Image.png

Clipboard Image.png

这块创建组并增加成员,包下面的错误,不知是啥原因,我的解决方法,就是先将group建好,通过编辑的方式再增加用户信息。

Clipboard Image.png

打开Cognos Configuration,配置SunOne Ladp,下面是配置截图

Clipboard Image.png

 

登录报表服务器,选择LDAP名称空间,输入Sun One中配置好的用户名就能登录Cognos服务器了。

Clipboard Image.png

4.   在认证环境下,如果重启了sun one directory server,则一定要重启 cognos server。才能正常登录cognos connection门户,否则会报下面的登录错误

Clipboard Image.png

5.   sunone 5.2directory server重启的问题

如果手工停止了directory server,如下图

Clipboard Image.png

此时如果当你退出ServerConsole,就会出现问题:重新登录报错

Clipboard Image.png

报错信息如下:

Clipboard Image.png

如果选择YES,将出现以下输入框,要去输入

Clipboard Image.png

注:这个信息如果不会填写,就无法直接进入了。

但是有个方法可以解决这个问题:

开始-运行中执行services.msc

进入服务清单,找到你所停掉的对应端口的directory server,这里我停的是389端口的directory server,将之重启即可。

Clipboard Image.png

此时,再次登录Server Console,即可。

2.1.3. IBMCognos Service

1.   安装IBM Cognos Service软件

Clipboard Image.png

双击Setup.exe 选择红色所指选项

Clipboard Image.png

点击next

Clipboard Image.png

点击next

Clipboard Image.png

选择I accept 点击next

Clipboard Image.png

选择I accept 点击next

 选择安装路径(与report net同路径)点击next 进入安装

Clipboard Image.png

 

正在安装

Clipboard Image.png

点击next

Clipboard Image.png

完成安装

2.   安装Access Manager Tool,安装步骤如下:

 获取安装软件,选择custom -->如下图:下一步-->最后点击完成。

Clipboard Image.png

选择Default,点击Next

Clipboard Image.png

 

选择 Locales for other languages,点击Next

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

 

安装完成后配置信息

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png


密码:admin1234 lgt是计算机名

Clipboard Image.png

这块设置需要一些时间,弹出下面界面表示配置成功

Clipboard Image.png

3.       在Cognos Service中配置用户和角色

打开Configuration Manager, 点击编译和运行连个按钮,成功编译后,会在tools中自动配置一个administrator的用户信息,安装完后先点击创建新的连接配置,再点Cognos(local) 才出现编译和运行按钮,这块时间比较慢,耐心等待

Clipboard Image.png

如下图toolsaccess manager的配置信息,密码刚开始时默认为null,直接登录就可以

Clipboard Image.png

4.   增加用户和角色信息

打开cognos-tool》》AccessManagerAdminstration  新建用户:

Clipboard Image.png

新建名称空间

Clipboard Image.png

新建用户名和密码

Clipboard Image.png

设置权限

Clipboard Image.png

5.   打开Cognos Configuration,配置 IBM Cognos Service名称空间,配置截图

 Clipboard Image.png

6.   安装配置完成,输入用户名和密码即可访问报表服务器。

2.1.4.JavaProject

假如要把cognos和自己开发的门户集成的话,使用第三方的ldap服务器始终有所不便,比如增加一个用户的话要在门户的数据库中和sunone中同时增加一条记录,还要考虑数据同步的问题;再比如用户验证除了用户名密码外要增加一个验证码或者集成动态密码之类的,就显得非常复杂,因此企业在实施cognos的时候,自己开发一套用户管理程序,然后和cognos集成,这样做是很有必要的,下面我就简单说下这个自定义的用户管理库和cognos集成的插件的开发过程。

l  开发代码请参考E:\workspace\CAMPS程序

l  程序开发完成后,通过eclipse导出一个名为LGTCAM.jar包文件,将此jar文件放到ibm\cognos\c10\webapps\p2pd\WEB-INF\lib目录下

l  打开Cognos Configuration配置,在身份认证那块新建一个名称空间选择自定义java提供程序,配置内容如下:

 Clipboard Image.png

l  配置成功后点击test,测试    新配置的PS程序是否测试通过。

Clipboard Image.png

l  如果要通过鉴权认证登录Cognos服务器,还需要将允许Cognos匿名登录改为false

Clipboard Image.png

l  配置完成后保存,重启Cognos服务器,这时再去访问报表服务器,就会提示输入用户名和密码了。

2.2. 报表服务器权限管理

使用Sun One Ldap作为第三方进行Cognos的用户管理。用SunOne中配置好的用户登录报表服务器

Clipboard Image.png

2.2.1. cognos用户权限控制

1)   进入到Cognos Administrator管理界面

Clipboard Image.png

2)   选择安全->用户、组合角色->Cognos

Clipboard Image.png

3)   点击Cognos进入到Cognos自带的各种角色信息界面,找到系统管理员,进行权限设置。

Clipboard Image.png

4)   点击成员,添加gtaoli系统管理员的成员

Clipboard Image.png

将显示列表中的用户前面打上勾,给系统管理员添加新的成员

Clipboard Image.png

5)   将系统管理员中的任何人成员删除。注:不做此操作,则任何人都是服务器管理员,可以任意添加,删除和修改报表。

Clipboard Image.png

6)   通过上面的设置,除了gtaoli 之外,所有的用户不再具有cognos的所有权限了。下面以其他用户的用户登录报表服务区,这时他不再具有系统管理员的权限了

Clipboard Image.png

7)   上面主要是给一个用户指定一个超级管理员的权限。除了这些,也可给特定的组、用户赋权限,如下图给特定的组赋权限

Clipboard Image.png

8)   在这里可以增加新的成员,并父项中获取访问权限并设置权限

Clipboard Image.png

2.2.2.设置文件夹访问权限

对于设置文件夹权限的设置和用户角色权限设置类似,登录之后,选择要设置的文件夹权限。用系统管理员用户登录设置步骤如下:

1)   点击文件夹属性图标,进入到权限设置界面

Clipboard Image.png

2)   将改写从父条目获取的访问权限前打上勾,删除里面的Cognos自带的角色信息

Clipboard Image.png

3)   添加可以访问此文件夹的用户

Clipboard Image.png

4)   设置该用户的访问权限

Clipboard Image.png

5)   设置完成后,除了gtaoli用户外,其他用户登录服务器后将看不到被设置的文件夹权限。

6)   文件夹还可进行如下的设置.

ü   勾上“改写从父系条目获取的访问权限”。

ü   勾选权限列表中的查询用户。

ü   将查询用户的“写”和“设置策略”权限设置为“拒绝”。(非常重要)

ü   点击“应用”完成修改。

ü   “确定”以保存设置。

Clipboard Image.png

2.2.3.设置报表访问权限

具体报表的权限设置和上面的文件夹权限设置类似,设置一张报表权限,只允许指定的group组查看报表具体设置步骤如下:

1) 用系统管理员登录系统,点击属性,设置报表权限,删除所有的角色信息,并添加新的角色

Clipboard Image.png

2)添加新的角色,即Sun One中增加的group

 Clipboard Image.png

3) 设置分组所拥有的权限

Clipboard Image.png

4) 设置完成后,只有该分组下的用户才能访问该报表了,其他用户无此报表的操作权限。

2.2.4.设置报表服务器功能权限

除了上面设置报表及文件夹权限操作外,还可设置报表的功能权限,如设置ReportNet Studio功能菜单,只允许特定的用户才可能看到RS,设置步骤如下

1)   进入Cognos Administration->安全->功能->Report Studio->属性

Clipboard Image.png

2)   点击权限将要禁用的用户组添加进去,进行如下设置

Clipboard Image.png

3)   用其他用户登录不再具有RS功能权限

Clipboard Image.png

4)   除了设置RS的功能权限外,还可设置QS、错误详情等,可将任何人加入到进来,将其所拥有的权限设置成拒绝,那么这时除了系统管理员,其他用户均看不到错误详情。

2.2.5. cognos中增加新的分组

除了在Sun One增加group外,还可以直接在Cognos管理界面增加用户组,操作如下

1)   进入Cognos Administrator->配置->通讯组和联系人->Cognos->新建通讯组

Clipboard Image.png

2)   点击添加,可以将指定的用户增加到该分组中

Clipboard Image.png

3)   如上面用户信息非常多时,可以点击右上角的搜索,通过输入条件查询具体的用户信息

Clipboard Image.png

选择高级查询项,搜索信息

Clipboard Image.png

4)   点击完成,创建新的分组。

2.2.6. cognos中增加新的联系人

Cognos中增加新的联系人,创建好的联系人和Cognos目录下的任何人是一个性质,你可以给该联系人设置权限。操作步骤如下:

1)   进入Cognos Administrator->配置->通讯组和联系人->Cognos->新建联系人

Clipboard Image.png

2)   创建新的联系人

Clipboard Image.png

3)   设置联系人权限

Clipboard Image.png

2.3. FrameWork权限管理

2.3.1. FM控制报表发布包权限

UserAccess(用户访问控制);设置用户的访问授权,授权的组和角色可以使用该包来创建报表等操作

AdministrationAccess(管理员访问控制);设置包管理访问授权,授权的组和角色可以对包进行管理

1)   创建报表发布包,设置报表用户访问权限或管理员访问权限

Clipboard Image.png

2)   设置报表用户访问权限,点击Add增加访问发布包的用户或分组

Clipboard Image.png

Clipboard Image.png

3)   点击Next,发布报表数据包,经过如上的设置,只有qxgl分组下的用户能操作发布的数据包,其他用户登录后将无权限操作此发布包。

4)   也可以点击new 在这块创建新的分组,创建分组的过程和之前提到的操作方法一样

5)   AdministratorAccess这块是设置管理员所拥有报表发布包权限。

Clipboard Image.png

2.3.2. FM控制报表数据展示权限

要做到对报表数据的控制,这块首先必须了解FMSession Parameters、和Parameter Map的用法,Parameter Map是一个keyvalue的键值队。导入映射文件可通过手工导入文件或者读取数据库查询项的数据导入映射文件。如下就是通过读取数据查询项生成的键值队,具体操作步骤:

1.  在报表服务端进行权限分配,倘若权限分配好了之后,登录FrameWork,点击project->Session Parameters会看到当前用户详细的登录信息。在这块也可以通过手工添加的方式增加可以、value

Clipboard Image.png

2.  创建Session Parameters键值队信息,如下,key-用户登录emailvalue-角色id

Clipboard Image.png

3.  对需要做权限控制数据查询项进行过滤处理,其中

     $account.personalInfo.userName登录的用户信息

     #$UserEmail{$account.personalInfo.userName}#--读取Session Parameters对应的信息,这块是根据传递的用户信息获取他的角色ID

Clipboard Image.png

4.  发布报表,这时候通过不同的用户登录,将只显示该用户对应的具体角色信息。

5.  创建Session Parameters还可以通过手工的方式配置keyvalue值,如下:用不同的用户登录进去,所对应的Value值不同,也可做权限控制。

Clipboard Image.png

2.3.3. 手动安全数据控制

前面讲过通过宏函数进行权限的控制,也可以通过Cognos服务器中创建好的分组及用户进行权限控制,如下面这张用户信息表,就可以通过增加权限的方式控制FM中的数据。操作如下:

1.   选择UserInfo信息表,点击工具栏上的Special Data Security

2.   点击Add group,增加用户信息或组信息到FM权限控制端。

Clipboard Image.png

3.   增加分组信息,并可以通过手工增加过滤的方式,和增加过滤查询项的方式控制模型数据。

(1)选择Create/Edit Embedded手工增加过滤条件

 Clipboard Image.png

(2)选择Insert From Model手工增加过滤查询项

Clipboard Image.png

4.   设置完成后,用户根据权限的不同在报表中会显示不同的数据,如果有些组或用户未加过滤,那么将显示该查询项的所有信息。

2.3.4.FM中查询项权限控制

FM中,我们还可以控制FM创建的查询主题的权限,根据权限的不同,发布包中的内容也会不同,操作步骤如下:

1.   选择一个查询数据项,点击工具栏上的Special Object Security

2.   选择Add,增加角色或用户信息,并设置权限。

Clipboard Image.png

3.   进行如上设置后,那么只有gtaoli登录报表服务器后,开发报表时,发布包中才会显示GO销售名称空间,其他用户登录服务器后,发布包将不存在该查询项。

推荐 6
本文由 bacckom 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

5 个评论

谢谢King老师,真心不错,很详细。
好文,必须推荐。
赞,正研究这块,多谢分享。。
真心好文一个,盯老师。
好文,赞一个

要回复文章请先登录注册