
在 SAP S/4HANA 里做 Enterprise Search 时,一个很容易出现的误解,是把搜索权限理解成一个单独的 PFCG Authorization Object。开发阶段经常能看到这样的现象,某个 CDS View Entity 已经成功建立索引,Search Connector 也处于可用状态,在 Enterprise Search 里甚至能够搜到这个对象类型,但换一个业务用户登录之后,要么整个搜索模型不能使用,要么能够搜索,却只能看到部分结果。这两种现象看起来都叫权限问题,背后实际上对应完全不同的授权层次。SAP 对 CDS-based Enterprise Search Model 定义了两层授权机制,一层控制某个 Search Connector 能不能被当前用户使用,另一层控制连接器已经被允许执行之后,其中哪些具体业务实例可以进入搜索结果。只有两层检查同时通过,一次搜索才算真正获得授权。SAP 官方把它们称为 Instance Level Authorization 和 Search Connector Level Authorization。把两层关系压缩成一个简单逻辑表达式,可以理解成最终可见搜索结果 = 允许使用 Search Connector AND 允许访问具体业务实例这里的AND很重要。只有 Connector 权限,没有 Instance 权限,并不能因此获得全部业务数据。只有 Instance 权限,却没有 Connector 权限,用户甚至无法通过对应 Enterprise Search Model 发起搜索。这正是 CDS