云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云主机_服务器配置单_新用户

小七 141 0

ABAP查询中的授权控制是一个灰色区域。一个人可能想在表级、记录级、选择级等限制数据访问

本博客试图以基于HR LDB的查询为例解释记录级授权检查的概念

如您所知,一个信息集可能包含一个或多个表。在HR中,我们使用PNP LDB来创建信息集。这样的信息集包含多个信息类型作为数据源。然后我们通过从我们选择的信息类型中选择字段来创建查询。

现在如果我们想检查用户是否对所选信息类型具有读取授权,我们需要在设计/编码时知道哪些信息类型要检查授权?这是一项很难预先知道用户在查询中可能使用什么信息类型的任务。

我们将了解如何调整SQ02中的信息集,以便能够根据分配给用户的角色进行动态授权检查。这个例子是一个简单的查询来显示员工工资数据。

转到SQ02并选择您的信息集。

然后转到extras

点击代码选项卡并在代码选择下拉列表中选择"数据"。

这里我们将定义我们的全局内部表来保存当前查询中使用的信息类型的名称

代码中执行此步骤的最佳位置是"开始选择"事件,企业大数据,因为它是一次性代码,应该在处理任何记录之前运行。因此,在"代码选择"下拉列表中选择"开始选择"

ABAP查询始终定义一个内部表%G00,该表保存最终数据。但是,它的类型是泛型的,大数据怎么学,仅在运行时确定。%G00中的每一列的名称形式为-。我们还知道每个infotype名称总是以字母"P"开头。

使用此信息,淘客助手下载,我们将在运行时循环%G00列,并从这些列名中提取表名。然后我们将验证表实际上是一个信息类型。一旦确定它是一个infotype,我们将把它添加到要检查授权的表列表中。下面是代码

现在是第二个棘手的部分来确定执行检查的位置。

作为一般规则,如果授权检查仅在表级别,则可以在"选择开始"部分执行。否则,美国云服务器,行业云,如果要对每个选中的记录执行检查,则应在"记录处理"块中执行检查。后者是我们将要使用的情况。

一旦确定了位置,确定要在权限检查中使用的授权对象及其要使用的字段。确保您有要提供给字段的数据。我们将使用标准授权对象"P\u ORGIN",其中INFTY字段由我们的内部infotypes表提供,PERSA字段由记录数据提供。完成此操作后,在此信息集上构建的所有查询都将基于用户的授权限制结果。