如何在Cognos10中获取AccessManager的角色的CAMID

目的:对cube进行权限控制,不局限方式。由于权限控制做的非常细,希望用程序自动读取配置文件控制权限。如果有好的实现方式,可以完全忽略下面给出的脚本方式。限制:必须使用Access Manager + SunOne的方式管理用户。权限控制的基准是AM里的角色,所有现存的配置信息均基于这些角...显示全部
目的:对cube进行权限控制,不局限方式。由于权限控制做的非常细,希望用程序自动读取配置文件控制权限。如果有好的实现方式,可以完全忽略下面给出的脚本方式。

限制:必须使用Access Manager + SunOne的方式管理用户。权限控制的基准是AM里的角色,所有现存的配置信息均基于这些角色。用户和角色数据是从旧系统中继承的,不可更改object class,也不能迁移到LDAP登陆方式。

环境:Cognos 版本是10.1, SDK已经安装。操作系统 Win 2008 R2, SunOne和AM装在另一台Win 2003上。

目前的解决方案:
Cognos Transformer支持脚本刷新权限(例子在最后),其作用是给myCube这个文件的Org这个维度刷新权限控制,指定Org_Example这个角色能看TreeNode_Example节点以下的数据。红色的CAMID那段即这个角色的CAMID。该脚本已经测试通过

我打算用.net或Java动态生成这样的脚本,对于这段脚本中的大部分参数我都可以通过数据库获得,但是角色对应的CAMID暂时无法获取。
目前我是直接在Cognos console里手工查看角色的属性,得到这个camid的。
也曾尝试在Cognos metadata里查询,只找到了Access Manager的root role(就是那个叫Root User Class的),administrator用户的CAMID也能找到,但是其他role都无法找到。

因此,我需要在Cognos10中获取AccessManager的角色的CAMID。看到IBM官方文档里说到Cognos 10 SDK可以获得AM里用户的CAMID,但是一直没找到获得角色CAMID的接口。

再重复一次,这个脚本只是一种尝试,如果有更好的解决方案,能满足现在的限制条件,欢迎。



=========以下是脚本,仅供参考==========OpenMDL "myCube.mdl"    SecurityNameSpaceMake "s7" SecurityNamespaceCAMID 'CAMID("s7")'SecurityNameSpaceUpdate "s7" SecurityNamespaceCAMID 'CAMID("s7")'ViewMake "Example~User view" Dimension "Org"  ViewSecurity "Org_Example" Apex "TreeNode_Example"  CustomViewMake "Example" DimensionView "Org" "Example~User view" SecurityObjectMake "CAMID("s7:r:authid=2948495323")"SecurityNamespace "s7" SecurityObjectDisplayName "Org" SecurityObjectType SecurityType_Role CustomViewList "Example"   EndListPowerCubeCustomViewListUpdate Cube "myCube" StartList"Example"EndListsavemdl "myCube.mdl"

附件:

附件图标获取accessmanager中各个用户组的camid.rar (1.59 KB)

收起
参与13

查看其它 11 个回答cognosbi的回答

cognosbicognosbi技术经理建信信托
回复 1# cclcjr


    我觉得你要确认四点:有你可控的和不可控的

   可控的:

   1. Redhat、 SUSE 和 AIX 、HP-UX 或者Solaris平台上还保留着 Cognos S7的认证方式

   2. 如果以上的平台不支持的话,就要反复确认是否确认以后就用Windows平台

   不可控的:

   1. Cognos未来的2个版本内,是否还提供S7的认证方式,我指的版本是10.2 和10.3,而不是10.2.1
    如果不支持意味着客户可能被绑死在某一个版本上,但是目前IBM的做法很多bug都是通过升级大版本解决,小版本上很多最后都没有给出解决的fix pack,象原来cognos可以做出的hotfix也不会有,这一点及其不厚道

    2. 如果你指的Sunone是5.2 不知道有没有售后的support,如果没有可能意味着你想花钱都找不到人给你解决问题

=======================================================

最后一个问题(当然不是特你)不要因为开发者的能力和对工具的掌握程度不同,故意引导客户选择开发者熟悉的平台和实现的技术。如果客户自以为很了解,但是你又觉得不对,应该抱着对客户负责的角度,把他错误的想法纠正过来,如果你说的他不听,可以建议他咨询厂商。做到你该做的,以后即使有问题,甲方也就不会把压力转嫁给开发商太多了
金融其它 · 2013-01-17
浏览1036

回答者

cognosbi
技术经理建信信托

cognosbi 最近回答过的问题

回答状态

  • 发布时间:2013-01-17
  • 关注会员:1 人
  • 回答浏览:1036
  • X社区推广