在这个博客中,我计划通过创建一个简单的DCL(数据控制语言)的步骤和先决条件,在行级别限制为分析/报告构建的自定义CDS视图。
首先,我在HANA studio中创建了一些CDS视图。MARA表上类型维度的CDS视图,与MAKT关联以获取材料描述。
然后我在VBAP表上构建了一个简单的cube类型CDS视图,其中包含很少的字段,企业软件正版化,与上面的材料CDS视图维度关联。我将不经历这个过程以及每个注释的含义。有很多博客解释了CDS视图的概念。
对于这个例子,我想限制基于field Material Group(VBAP-MATKL)的数据。
下面是我的多维数据集CDS视图,从VBAP中选择数据。需要注意的几点:
我们需要注释@访问控制.授权检查:#检查。这将允许检查此CDS视图是否有任何授权。我为MATKL创建了一个别名,将其重命名为MaterialGroup。这是我们将在DCL中使用的字段。
下面是我的源表,其中包含了物料组的多个值:
由于CDS视图存在于应用层,我们可以对其应用传统的PFCG安全性,这是主要的好处之一,因为我们不必同时维护HANA DB安全性。
因此第一步是在TCODE SU21中创建授权对象。我还为此示例创建了一个新的对象类:
在创建授权对象窗口中,提供对象技术名称和文本:
添加字段ACTVT,然后点击保存按钮:
系统将提示您输入一个包。选择您的包或另存为本地对象,云服务器和服务器,根据您的要求:
您应该会收到一条类似于以下信息:
屏幕应该已经更改,并且您应该能够维护允许的活动:
在允许的活动屏幕中,选择03–显示,大数据有什么用,因为这是一个用于分析目的的CD视图,我们只需要显示权限
然后添加需要授权的字段,在我们的例子中是物料组(MATKL),按照上面相同的步骤授予显示权限。您的授权对象应该是这样的:
我们已经完成了授权对象的创建。现在我们需要创建角色来分配它。所以我们转到PFCG并创建角色,给它一个名称,然后单击singlerole。我将创建的第一个角色将限制角色编辑器中的物料组YBF02:
,我点击授权选项卡,然后更改底部的授权数据:
我没有选择任何模板:
在下一个屏幕中,我手动选择添加以前创建的授权对象:
我添加了授权对象,并点击绿色勾选:
您应该会看到这样一个屏幕:
我们需要通过单击每个字段旁边的铅笔编辑授权。我们从活动开始。确保选中"显示"旁边的复选框,然后单击"保存:
",然后单击"物料组"旁边的铅笔并保持允许的值,然后单击"保存:
您的角色应该是这样的(忽略前两个授权对象BC\u A和RS):
同样,我按照下面的命令通过物料组YBR01构建了另一个角色限制数据以上步骤相同:
创建角色后,我创建了两个用户来测试每个角色,用户YBR01\u DLC和YBF02\u DCL,每个用户都有相应的角色:
YBR01\u DCL:
YBF02\u DCL:
我们现在终于可以在HANA Studio中创建DCL了。所以打开它,进入ABAP视角。转到您想要的包(我在$TMP包中做的),右键单击->新建->访问控制:
给它一个名称和描述并点击下一步:
分配一个传输或点击下一步:
保留所选模板并点击完成:
您应该有以下屏幕根据模板:
修改如下:
定义角色:提供一个角色名
Grant Select on:这是我们限制数据的CDS视图。使用DDL源名称,而不是SQL视图名称
其中:是我们限制的字段,如果CDS视图中有别名,则使用
Aspect pfcg\u auth:
ZMATGRP是前面定义的授权对象的名称
MATKL是授权组中的字段
ACTVT是活动,值03是显示
激活DCL,我们现在可以测试我们之前创建的用户。
与这些用户一起登录ECC,并导航到TCODERSRTSU ODP DIS。因为这个CDS视图是VDM类型的Basic,所以我们不能在RSRT中预览它。如果我们建立了VDM类型消费和@分析.查询:True,淘客推广平台,这将允许我们使用RSRT.
在tcode RSRTS\u ODP\u DIS中,我们保留ODP Context ABAP Core Data Services,并在ODP Name中输入CDS视图的SQL视图名称。然后点击执行:
您将看到CDS视图的布局,以及之前定义的所有键、数据、单位和键数字。你也会注意到任何关联或语义,通过在一个字段的右边看到绿色图标。点击标准的查询,将你带到CDS视图的数据预览,考虑到先前定义的任何授权:在数据预览中有一次。将物料组添加到行部分以验证DCL是否工作。
我们可以看到,对于用户YBR01\U DCL,大数据培训班,我们只能看到物料组YBR01。
同样,对于用户YBF02\U DCL,我们只能看到YBF02:
就是这样。我希望这是有益的,它可以帮助您保护您的数据在您的CDS视图。