我想做一个cognos数据方面的安全控制。。看到有一篇文章不懂。。贴出来大家帮忙分析一下。
全局行控制是现在比较常用的一种控制方式,一般的数据安全控制都使用这个方式进行。 根据我们使用的数据模型的安全性要求,上级能够访问下级的,下级不能访问上级,同级之间不能互访,因此,这种安全控制是在机构上进行的。为了统一处理数据安全控制,我们推荐使用宽表表示机构维度,如下:
每一个级别的机构都占用两个列,一个存放名称,一个存放机构编码。并始终在这个机构上采用过滤条件: [证券_DS].[DIM_ORG].[ORG_L1_ID] in #CSVIdentityNameList()# or [证券_DS].[DIM_ORG].[ORG_L2_ID] in #CSVIdentityNameList()# or [证券_DS].[DIM_ORG].[ORG_L3_ID] in #CSVIdentityNameList()# 其中: [证券_DS].[DIM_ORG].[ORG_L1_ID]是一级行机构代码在物理层表上对应的列,其它级别的机构类似。 #CSVIdentityNameList()#是Cognos的内置宏,能够取到当前用户所属的所有机构和角色信息。 使用上述过滤,可以使用户仅能够访问所属机构及以下机构,需要注意的是,安全控制的最终目的是控制事实数据的安全性,因此,应该将机构表使用安全过滤后再和事实表关联,并且仅将关联后的结果发布到服务器上。 该模式的一个前提是机构编码是唯一的,即不同级别的机构使用的机构编码是不同的。
这个是怎么实现呢?另外将整个文件上传一下。。
附件:
Cognos8.pdf (740.34 KB)
收起