今天我们在做 SAP S/4HANA 或 ABAP Cloud 项目时,权限问题已经很少只是一个AUTHORITY-CHECK写在哪里的问题。特别是 CDS View 被 RAP、OData、Fiori Elements、SQL Service、分析报表反复复用之后,同一份数据模型可能会从很多入口被消费。权限如果散落在各个消费端,维护成本会迅速上升,排错也会变得很痛苦。CDS Access Control,也就是常说的 DCL,解决的正是这个问题。SAP 官方文档明确说明,ABAP CDS 有自己的授权概念,DCL 规则可以在 CDS 条件中表达授权逻辑,并且可以结合经典 PFCG 授权对象一起使用。它和传统 ABAP 授权体系并不是互相替代的关系,而是可以并行存在,甚至互相配合。传统授权经常出现在事务码调用或显式AUTHORITY-CHECK中,而 CDS 授权更偏向在访问 CDS 实体时隐式生效。(SAP Help Portal)在实际项目里,我更愿意把 DCL 理解成一层贴近数据模型的行级访问过滤器。它不是简单地判断某个用户是否能进某个程序,而是判断