【问题标题】:Notify user about not allowed results via ASPECT pfcg_auth?通过 ASPECT pfcg_auth 通知用户不允许的结果?
【发布时间】:2021-03-07 10:30:30
【问题描述】:

在“经典”ABAP 权限检查中,您有时会遍历结果列表。如果至少有一项检查失败,您将通知用户并仅显示他有权使用的项目。 我的问题是:您将如何使用 pfcg_auth 方面在 CDS 中执行此操作? 例如:

define role my_role {
  grant select 
    on vbak
  where ( vkorg ) = aspect pfcg_auth ( v_vbak_vko, vkorg, actvt = '03' );
}

您如何判断选择找到了 50 个销售订单,但用户只被授权显示其中的 40 个?

【问题讨论】:

  • 在极少数情况下您确实需要此信息,我猜您可能会创建一个 API,该 API 在有权访问所有数据的服务用户下运行,SELECT COUNT(*) 将返回您想要的信息。

标签: authorization abap opensql cds


【解决方案1】:

对于CDS 视图选择,有一个语法可以选择绕过DCL WITH PRIVILEGED ACCESS

您可以为具有特权访问权限的数据库中的数据选择 count(*)。如果数字不相等,您可以提出消息。

【讨论】:

  • 这个语法是在 752 年发布的?
  • 非常感谢,这看起来很棒。这里唯一的缺点——如果我做对了——是我必须用选择点击两次视图,对吗?
  • 关于语法,检查链接的文档。 @Suncatcher
  • @Matthias 是的。你需要点击两次视图。这是唯一的方法。我的意思是这就是你所需要的,如果你有一个大视野,它会对性能产生影响。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
相关资源
最近更新 更多