一、引言
1.1. 编写目的
本文档是结合以往的开发经验,从实际报表开发出发,详细介绍了ReportNet报表设计流程、开发技巧,报表性能调优、FM建模规范及技巧讲解。总结的文档希望对大家在日后的开发中带来帮助。
1.2.开发工具
lFrameWorkManager10.1.0模型
l Business Intelligence Server 32-bit 10.1.0Windows Multilingual)报表服务器。
二、报表权限设置
2.1. 第三方目录管理器
众所周知,cognos自身并不带用户管理模块,需要嵌入第三方的用户管理,可以使用sunone的ldap服务器作为用户管理模块的较为常见,采用第三方管理报表服务器权限,首先要先将报表服务器的匿名访问设置为false,之后介绍我所用过的几种第三方软件。
2.1.1.NTML
NTML在众多方法中最简单,也最实用。使用操作系统的用户账户来管理Cognos报表服务器的权限设置,即登录Cognos服务器的用户,也就是登录计算系统的用户。创建步骤如下:
1)名称空间选择NTML
2)在Properties窗口中,对于NameSpaceID属性,指定唯一的标志符,如这块输入’NTLM’
3)创建完成后,测试NTLM名称空间是否测试成功。
4)配置完成后将使用简单文件共享的勾去掉,保存配置,然后启动Cognos服务器。
5)登录报表服务器,选择NTLM名称空间,通过登录window的系统的用户名密码就能登录Cognos服务器了。
2.1.2. SunONE LDAP
快速安装Sun ONE服务器,然后在Sun One中配置用户和分组。SUN ONE的安装时,需注意以下两点:
1.一定要装在英文目录下。否则JAVA安装的时候,会到中文路径下去寻找安装文件,而JAVA本身并不支持在中文下搜索程序的能力,因此会一直在搜索,所以安装的时候会提示整个界面一直卡住,而JAVA又报java.lang错误,提示超出最大长度。实际上,不是由于超出长度,而是由于中文不被识别。。。。会报如下的错误信息:
2.设置计算机名,并增加后缀,如下:
准备好Sun One安装软件,下面介绍Sun One的具体安装。
这块默认设的密码为admin1234,下面这块配置需要一定的时间,请耐心等待。
登录成功后,选择”User and Group”,创建用户和分组
具体创建方法如下:
选择Create Use->Base DN(top level of The Usersand Group Tree)
创建分组,并指定用户所在的分组,选择Create Group-> Base DN(top level of TheUsers and Group Tree)
输入组名
添加成员
这块创建组并增加成员,包下面的错误,不知是啥原因,我的解决方法,就是先将group建好,通过编辑的方式再增加用户信息。
打开Cognos Configuration,配置SunOne Ladp,下面是配置截图
登录报表服务器,选择LDAP名称空间,输入Sun One中配置好的用户名就能登录Cognos服务器了。
4.在认证环境下,如果重启了sun one的directory server,则一定要重启cognos server。才能正常登录cognos connection门户,否则会报下面的登录错误
5.sunone 5.2的directory server重启的问题
如果手工停止了directory server,如下图
此时如果当你退出ServerConsole,就会出现问题:重新登录报错
报错信息如下:
如果选择YES,将出现以下输入框,要去输入
注:这个信息如果不会填写,就无法直接进入了。
但是有个方法可以解决这个问题:
在“开始-运行”中执行services.msc
进入“服务”清单,找到你所停掉的对应端口的directory server,这里我停的是389端口的directory server,将之重启即可。
此时,再次登录Server Console,即可。
2.1.3. IBMCognos Service
1.安装IBM Cognos Service软件
双击Setup.exe选择红色所指选项
点击next
点击next
选择I accept点击next
选择I accept点击next
选择安装路径(与report net同路径)点击next进入安装
正在安装
点击next
完成安装
2.安装Access Manager Tool,安装步骤如下:
获取安装软件,选择custom -->如下图:下一步-->最后点击完成。
选择Default,点击Next
选择Locales for other languages,点击Next
安装完成后配置信息
密码:admin1234 lgt是计算机名
这块设置需要一些时间,弹出下面界面表示配置成功
3.在Cognos Service中配置用户和角色
打开Configuration Manager,点击编译和运行连个按钮,成功编译后,会在tools中自动配置一个administrator的用户信息,安装完后先点击创建新的连接配置,再点Cognos(local)才出现编译和运行按钮,这块时间比较慢,耐心等待
如下图tools中access manager的配置信息,密码刚开始时默认为null,直接登录就可以
4.增加用户和角色信息
打开cognos-tool》》AccessManagerAdminstration新建用户:
新建名称空间
新建用户名和密码
设置权限
5.打开Cognos Configuration,配置IBM Cognos Service名称空间,配置截图
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提供程序”,配置内容如下:
l配置成功后点击test,测试新配置的PS程序是否测试通过。
l如果要通过鉴权认证登录Cognos服务器,还需要将允许Cognos匿名登录改为false。
l配置完成后保存,重启Cognos服务器,这时再去访问报表服务器,就会提示输入用户名和密码了。
2.2. 报表服务器权限管理
使用Sun One Ldap作为第三方进行Cognos的用户管理。用SunOne中配置好的用户登录报表服务器
2.2.1. cognos用户权限控制
1)进入到Cognos Administrator管理界面
2)选择安全->用户、组合角色->Cognos
3)点击Cognos进入到Cognos自带的各种角色信息界面,找到”系统管理员”,进行权限设置。
4)点击”成员”,添加”gtaoli”为”系统管理员”的成员
将显示列表中的用户前面打上勾,给系统管理员添加新的成员
5)将系统管理员中的’任何人’成员删除。注:不做此操作,则任何人都是服务器管理员,可以任意添加,删除和修改报表。
6)通过上面的设置,除了’gtaoli’之外,所有的用户不再具有cognos的所有权限了。下面以其他用户的用户登录报表服务区,这时他不再具有”系统管理员的权限了”
7)上面主要是给一个用户指定一个超级管理员的权限。除了这些,也可给特定的组、用户赋权限,如下图给特定的组赋权限
8)在这里可以增加新的成员,并父项中获取访问权限并设置权限
2.2.2.设置文件夹访问权限
对于设置文件夹权限的设置和用户角色权限设置类似,登录之后,选择要设置的文件夹权限。用”系统管理员用户登录”设置步骤如下:
1)点击文件夹属性图标,进入到权限设置界面
2)将改写从父条目获取的访问权限前打上勾,删除里面的Cognos自带的角色信息
3)添加可以访问此文件夹的用户
4)设置该用户的访问权限
5)设置完成后,除了”gtaoli”用户外,其他用户登录服务器后将看不到被设置的文件夹权限。
6)文件夹还可进行如下的设置.
ü勾上“改写从父系条目获取的访问权限”。
ü勾选权限列表中的查询用户。
ü将查询用户的“写”和“设置策略”权限设置为“拒绝”。(非常重要)
ü点击“应用”完成修改。
ü“确定”以保存设置。
2.2.3.设置报表访问权限
具体报表的权限设置和上面的文件夹权限设置类似,设置一张报表权限,只允许指定的”group”组查看报表具体设置步骤如下:
1)用系统管理员登录系统,点击属性,设置报表权限,删除所有的角色信息,并添加新的角色
2)添加新的角色,即Sun One中增加的group
3)设置分组所拥有的权限
4)设置完成后,只有该分组下的用户才能访问该报表了,其他用户无此报表的操作权限。
2.2.4.设置报表服务器功能权限
除了上面设置报表及文件夹权限操作外,还可设置报表的功能权限,如设置ReportNet Studio功能菜单,只允许特定的用户才可能看到RS,设置步骤如下
1)进入Cognos Administration->安全->功能->Report Studio->属性
2)点击权限将要禁用的用户组添加进去,进行如下设置
3)用其他用户登录不再具有RS功能权限
4)除了设置RS的功能权限外,还可设置QS、错误详情等,可将”任何人”加入到进来,将其所拥有的权限设置成”拒绝”,那么这时除了系统管理员,其他用户均看不到错误详情。
2.2.5. cognos中增加新的分组
除了在Sun One增加group外,还可以直接在Cognos管理界面增加用户组,操作如下
1)进入Cognos Administrator->配置->通讯组和联系人->Cognos->新建通讯组
2)点击添加,可以将指定的用户增加到该分组中
3)如上面用户信息非常多时,可以点击右上角的”搜索”,通过输入条件查询具体的用户信息
选择高级查询项,搜索信息
4)点击完成,创建新的分组。
2.2.6. cognos中增加新的联系人
Cognos中增加新的联系人,创建好的联系人和Cognos目录下的”任何人”是一个性质,你可以给该联系人设置权限。操作步骤如下:
1)进入Cognos Administrator->配置->通讯组和联系人->Cognos->新建联系人
2)创建新的联系人
3)设置联系人权限
2.3. FrameWork权限管理
2.3.1. FM控制报表发布包权限
UserAccess(用户访问控制);设置用户的访问授权,授权的组和角色可以使用该包来创建报表等操作
AdministrationAccess(管理员访问控制);设置包管理访问授权,授权的组和角色可以对包进行管理
1)创建报表发布包,设置报表用户访问权限或管理员访问权限
2)设置报表用户访问权限,点击”Add”增加访问发布包的用户或分组
3)点击Next,发布报表数据包,经过如上的设置,只有qxgl分组下的用户能操作发布的数据包,其他用户登录后将无权限操作此发布包。
4)也可以点击”new”在这块创建新的分组,创建分组的过程和之前提到的操作方法一样
5)AdministratorAccess这块是设置管理员所拥有报表发布包权限。
2.3.2. FM控制报表数据展示权限
要做到对报表数据的控制,这块首先必须了解FM中Session Parameters、和Parameter Map的用法,Parameter Map是一个key、value的键值队。导入映射文件可通过手工导入文件或者读取数据库查询项的数据导入映射文件。如下就是通过读取数据查询项生成的键值队,具体操作步骤:
1.在报表服务端进行权限分配,倘若权限分配好了之后,登录FrameWork,点击project->Session Parameters会看到当前用户详细的登录信息。在这块也可以通过手工添加的方式增加可以、value值
2.创建Session Parameters键值队信息,如下,key-用户登录email;value-角色id
3.对需要做权限控制数据查询项进行过滤处理,其中
$account.personalInfo.userName—登录的用户信息
#$UserEmail{$account.personalInfo.userName}#--读取Session Parameters对应的信息,这块是根据传递的用户信息获取他的角色ID。
4.发布报表,这时候通过不同的用户登录,将只显示该用户对应的具体角色信息。
5.创建Session Parameters还可以通过手工的方式配置key、value值,如下:用不同的用户登录进去,所对应的Value值不同,也可做权限控制。
2.3.3. 手动安全数据控制
前面讲过通过宏函数进行权限的控制,也可以通过Cognos服务器中创建好的分组及用户进行权限控制,如下面这张用户信息表,就可以通过增加权限的方式控制FM中的数据。操作如下:
1.选择UserInfo信息表,点击工具栏上的Special Data Security。
2.点击Add group,增加用户信息或组信息到FM权限控制端。
3.增加分组信息,并可以通过手工增加过滤的方式,和增加过滤查询项的方式控制模型数据。
(1)选择Create/Edit Embedded手工增加过滤条件
(2)选择Insert From Model手工增加过滤查询项
4.设置完成后,用户根据权限的不同在报表中会显示不同的数据,如果有些组或用户未加过滤,那么将显示该查询项的所有信息。
2.3.4.FM中查询项权限控制
在FM中,我们还可以控制FM创建的查询主题的权限,根据权限的不同,发布包中的内容也会不同,操作步骤如下:
1.选择一个查询数据项,点击工具栏上的Special Object Security。
2.选择Add,增加角色或用户信息,并设置权限。
3.进行如上设置后,那么只有gtaoli登录报表服务器后,开发报表时,发布包中才会显示GO销售名称空间,其他用户登录服务器后,发布包将不存在该查询项。
cognos java用户权限_Cognos 权限管理之第三方目录管理员器 报表服务器权限管理 FrameWork权限管理等详细配置 【39页深度好文图文并茂带你全面了解Cognos权限管理】...