BW的权限机制

这个是为了权限检查那篇的扩展。
从数据方面来考虑,我们要把不同系统的数据拿过来,然后给用户看。
这里就涉及到权限了,根据职权不同,能看到的数据不同。
跟ERP不同,ERP那边是你能进行哪些操作,但是BW这边是你能看到什么数据,和进行哪些操作

咱就只知道BW的皮毛,就只能总结总结BW的。

权限对象

啥是权限对象?
就像是一块块门禁令牌,你有了不同的令牌,通过不同的入口,别人检查了后才给你进。如果检查了没有令牌,那对不起,别进。
你进了之后能干什么也会写明,这个叫做权限字段。权限对象上的每个权限字段会告诉你相应的你能干什么,在对象上的什么地方干。
我们在SU21里面能看到所有标准权限对象。标准的告诉你,你能进行哪些操作。比如建模,监控,抽数,加载等等。
在这里插入图片描述

分析授权

除此之外,还有分析授权。新建和维护分析授权的代码:RSECADMIN
分析授权干嘛的呢?就是告诉你能看哪些数据。那这个是怎么实现的呢?
在这里插入图片描述
这个就是通过权限相关对象实现的。
比如公司代码,工厂,成本中心,利润中心。通过设置这些权限相关对象来建立不同公司,不同工厂,不同成本中心及不同利润中心的数据权限。
在这里插入图片描述
分析授权是不对权限对象进行操作的。但是你可以在权限对象里面弄分析授权。它其实是基于一组权限相关的特性或者导航属性。在分析授权中限定权限相关特性的值,来提供相应数据的权限。当然不一定是特定值,你还可以用一个出口变量来限定。如果觉得晕,继续往下看。
这些权限相关变量用于query,并且在用户访问query的时候会对用户的权限进行检查。一般情况下,query总是会从数据库跑一个满足条件的数据集。如果这个数据集里面有权限相关对象,那你得保证跑报表的用户有对应的权限相关对象的权限,然后他才能跑出属于自己的数据。否则就会出现无权限的错误。一般为了防止影响query性能,一个query里最好不要超过10个权限对象。如果权限对象值限定为*,那就没影响,就等于不限制。
要注意分析授权不是过滤器的概念。

总结一下,分析授权基于一组权限相关特性或导航属性,接着来限制特性的值。
限制的值可以是单值,区间或层级授权。
然后来分配这个授权给用户。
那么怎么分配呢?

创建role和profile

通过建立role和profile。PFCG来建role:
在这里插入图片描述
更改权限数据。
在这里插入图片描述
我们可以参照已有的模板:
在这里插入图片描述
从下面可以看到权限数据是基于SU21的权限对象以及对象下的权限字段的。
根据我们之前说的,权限对象相当于令牌,权限字段告诉你能干什么。下面这个图是个分析授权的权限字段填值。这里你可能会晕,不是说分析授权和权限对象无关么?为什么在权限对象下给值呢?
因为权限对象给它开了个口子,包括了分析授权的对象。只不过值是一个分析授权。
在这里插入图片描述
我们看个标准授权:
在这里插入图片描述
标准权限对象就是,你给了哪个令牌,令牌下面的权限字段,你分别能让他们干什么。比如上面这个activity字段就让有这个角色的人能够增删改查。这些操作都可以。下面的可以操作的范围没有限制。
在这里插入图片描述
对于报表用户,必须添加权限对象:
S_RS_COMP
S_RS_COMP1
用来限制可访问的报表。在Name of a reporting Component那里限定报表名。或者以什么开头Q*。
在这里插入图片描述
S_RFC 从Bex关联到后台的权限,否则无法访问后台数据。
在这里插入图片描述
到这里,在不讨论分析授权具体的操作下。我们就可以直接激活并且传输role了。此前会生成profile。一个role会对应一个profile,在具体的权限文档里面你能看到profile都是权限对象后面的编号去掉后两位。
在这里插入图片描述
关于传输role.请看这篇: role的传输
最后,我们把这个role分配给用户就好了。

以上是通过创建role把分析授权集成在role的profile里。你知道从RSECADMIN可以直接建立分析授权,所以如果你想直接把分析授权分配给用户也是可以的:或者RSU01
在这里插入图片描述
但是分析授权好像一般都是基于角色的。这也就是为啥我们是先建了角色,然后在标准对象下分配分析授权。直接建分析授权,并且直接分配给用户的话,就是在Manual or Generated下面。
在这里插入图片描述

分析授权的实现

好了,到这里回来填坑。
用户现在有的这个角色,只是参考SAP提供的角色创建的。在分析授权里面,我们看到的是这个:
0BI_ALL. 这个是给所有的权限。如果你给了这个授权,然后又新建了自己的授权,请记住,这个all会覆盖所有其他的授权。
在这里插入图片描述
你到rsecadmin下面查看,会发现这个0BI_ALL里面包括了系统里所有的权限相关对象,然后给了所有对象值:*
在这里插入图片描述
那我们怎么办呢?
我们可以复制这个分析授权出来,然后基于它来修改:
在这里插入图片描述

可以限定层级从客户出口变量来动态取值。
这里也就是说为什么分析授权不能单纯的看成是过滤器,从客户出口这个功能实际上是相当于一个接口。(以后来写,如果有空的话)
在这里插入图片描述
也可以限定为固定值或区间。
在这里插入图片描述
然后把这个新的分析授权填写到授权字段下,取代0BI_ALL来完成我们的权限限定。

如果你要自己完全新建一个也是可以的,只是会有三个默认对象:
0TCAACTVT – 就是授权的行为,你可以是修改或者是查看。

0TCAVALID – 授权的时间区间。
0TCAIPROV – 授权的信息提供者。

到此,接下来的步骤就是创建一个具有分析授权里限定的权限对象的query,然后让该用户去执行query,来认证我们的分析授权是否合理。
你可以自己帮他测:RSUDO
或者在RSECAMDIN下:
在这里插入图片描述
去执行query.
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45689053/article/details/112802090
今日推荐