想要在 ABAP 编程世界里准确理解 @AccessControl.authorizationCheck: #NOT_REQUIRED 这一注解,往往需要结合权限校验在 SAP 环境中的运作方式去审视其意义。在 CDS View 领域中,这个注解扮演了极其重要的角色,对应的概念相对简单却常常容易被忽视。
权限校验与 CDS View 的基础关联
CDS View 可以被视为在 ABAP 编程体系下对数据模型进行扩展和抽象的重要手段。倘若需要从表或其他视图中查询数据,并且希望透过更直观、更可读的方式来组织数据结构,CDS View 往往是首选。对于大部分企业而言,数据合规和权限校验至关重要,所以通常会借助系统提供的权限框架来保护数据安全。
常见情况下,CDS View 可以通过多种注解来控制权限行为。一个常见的权限注解是 @AccessControl.authorizationCheck,它决定了系统在访问该 CDS View 时,是否以及如何进行权限检查。通俗地说,如果需要细粒度地对数据进行权限管理,就会指定相应的权限策略,例如 #CHECK 或者 #PRIVILEGED_ONLY。反之,如果并不想基于此 CDS View 触发特定的权限控制机制,也就会在注解里标明 #NOT_REQUIRED。
@AccessControl.authorizationCheck: #NOT_REQUIRED 的实际含义
当定义一个 CDS View 并在其顶部添加 @AccessControl.authorizationCheck