壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 491|回复: 1

[权限管理] cognos如何实现数据权限?

[复制链接]
发表于 2012/3/7 11:25:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
现在手中有个项目,有一套java开发的报表的portal通过portal可以进行cognos报表展示。要求实现如下数据访问控制:
用户按照所属机构分为多个层级,一级机构用户可以查看其本身所属机构及其下属的二级机构机构的数据,二级机构可以查询其本身所属机构及其下属的三级机构数据,以此类推。我的初步设想是由portal向cognos传递用户登录时的机构编码,作为cognos查询数据时的过滤条件,以达到数据访问控制。但存在以下问题:
问题:1、如何通过portal向cognos传递机构编码(java开发);
      2、cognos如何获取传递过来的机构编码并应用于数据查询中。
PS:使用report studio进行的报表开发


该贴已经同步到 xiaoerp的微博
 楼主| 发表于 2012/3/7 11:25:24 | 显示全部楼层
在Cognos设计Framework模型时,可以用Cognos函数来实现权限管理,前提是通过用户登录系统来判断所属机构进行控制,如果分析表数据与应用系统用户表数据在同一个数据库下最好实现,但跨不同类型数据库也可以实现控制,但运行速度很不理想。
    在数据库层面要保证用户表与分析表能建立对应关系,我所提到的用户表是指应用系统中用户机构表,是保存用户基本信息,他的成员多数是管理员、高层领导、分公司管理者等等。每人成员必需归属一个机构下,也有成员归属多个机构。
     C_USERDESC=’8601’  是机构编码,在分析表可能不是8601,就找出与8601对应的机构代码关系表。
     在Framework Manager开发界面下,添加用户机构信息表,进入编辑状态,编辑格式如下:
Select         C_USERNAME ,        C_USERALIAS ,        C_USERDESC
from  T_USER
where  T_USER.C_USERNAME =#sq($account.defaultName)#
注意:#sq($account.defaultName)#是单击“ ”插入宏变量。找到Cognos系统函数。

左边列表有消息参数和宏变量,根据需要使用相应的函数。右边上方是表达式窗口,右边下方是信息结果窗口:'admin'
编辑好表达式之后,点“TEST”页签测试结果。Admin用户结果为一条记录,如果用户对应多机构,会出现多条记录。
   在Framework设置好用户维度表与分析事实表连接关系,封装结构信息并发布的到BI Web服务,在设计报表时,要把用户表C_USERNAME字段项添加到子查询中,检验表单数据是否被限制。
   提示:权限配置方法一比较麻烦,对于未知上线系统用户机构信息,维护期间必须回到模型中添加,发布新版本。配置方法二很灵活,在应用系统管理界面,新增用户,维护好机构代码即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 00:12 , Processed in 0.012226 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表