访问控制注释

可以使用以下访问控制注释:

1.@ AccessControl.authorizationCheck:'<VALUE>’

说明:当使用Open SQL访问CDS视图时,定义隐式访问控制。

可能的值:#CHECK,#NOT_REQUIRED和#NOT_ALLOWED

注释@ AccessControl.authorizationCheck允许您定义使用Open SQL访问CDS视图时如何处理访问控制,如下所示。

检查:如果使用Open SQL访问视图,则将CDS角色分配给视图时,将隐式执行访问控制。如果该视图没有角色,则会发生语法检查警告。

NOT_REQUIRED:与#CHECK类似,但是没有语法检查警告。

NOT_ALLOWED:不执行访问控制。这会在视图角色的DCL源代码中产生语法检查警告。

ABAP CDS支持基于数据控制语言(DCL)的访问控制。ABAP CDS中的访问控制进一步限制了ABAP CDS中从CDS实体返回的数据。CDS访问控制基于以下内容:

使用DCL语句DEFINE ROLE定义的CDS角色。当前,CDS角色隐式映射到每个用户。这就是为什么它们也被称为映射角色的原因。

在CDS角色CDS实体中定义的访问条件。访问条件可以如下:

  • 将CDS实体的元素与文字值进行比较的文字条件。
  • PFCG条件,该条件将CDS实体的元素与SAP授权概念中的授权相关联。

如果为CDS实体定义了CDS角色,则每次使用Open SQL或使用服务适应描述语言(SADL)查询访问对象时,都会隐式评估访问条件(除非为访问对象使用值#NOT_ALLOWED禁用访问控制)批注@ AccessControl.authorizationCheck)。如果启用了访问控制,则仅
读取满足访问条件的数据。

注意:
SADL(服务适应性描述语言)是一种ABAP技术,可以在各种场景中使用类似实体关系的ABAP数据模型,并具有基于模型驱动方法的通用开发经验。因此,SADL使用查询下推功能,可以基于SAP HANA对移动和桌面应用程序上的场景进行数据的快速读取访问。