Ansicht
Dokumentation

ABENCDS_ACCESS_CONTROL - CDS ACCESS CONTROL

ABENCDS_ACCESS_CONTROL - CDS ACCESS CONTROL

CL_GUI_FRONTEND_SERVICES - Frontend Services   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Zugriffskontrolle

Die ABAP CDS ermöglichen eine Zugriffskontrolle, die auf einer Datenkontrollsprache (CDS DCL) beruht. Die Zugriffskontrolle der ABAP CDS bewirkt eine zusätzliche Einschränkung der von einer CDS-Entität der ABAP CDS zurück gegebenen Daten. Die CDS-Zugriffskontrolle beruht auf:

  • CDS-Rollen, welche mit der CDS-DCL-Anweisung DEFINE ROLE definiert werden. Eine CDS-Rolle wird nicht bestimmten Benutzern zugeordnet sondern wird für jeden Benutzer ausgewertet.
  • Zugriffsregeln die in einer CDS-Rolle für CDS-Entitäten definiert werden. Zugriffsregeln können Bedingungen definieren, aber auch freien Zugriff gewähren. Zugriffsregeln können in einer CDS-Rolle von einer anderen CDS-Entität oder Regel geerbt werden.
  • Zugriffsbedingungen, die in einer Zugriffsregel für die Elemente von CDS-Entitäten definiert werden. Zugriffsbedingungen beruhen im Wesentlichen auf literalen Werten, auf klassischen Berechtigungen des aktuellen Benutzers oder auf Daten aus anderen CDS-Entitäten, die durch eine Selektion mit dem aktuellen Benutzer erreicht werden können ( selbstdefinierte Aspekte).

Wenn für eine CDS-Entität eine CDS-Rolle mit Zugriffsregeln definiert ist, werden die Zugriffsbedingungen bei jedem Zugriff über implizit ausgewertet, es sei denn die Zugriffskontrolle ist mit dem Wert #NOT_ALLOWED für die Annotation @AccessControl.authorizationCheck oder mit dem Zusatz WITH PRIVILEGED ACCESS in der FROM-Klausel einer -Query ausgeschaltet. Bei eingeschalteter Zugriffskontrolle werden nur die Daten gelesen, die den Zugriffsbedingungen genügen.

Jede CDS-Rolle wird in einem eigenen DCL-Quelltext definiert. Diese DCL-Quelltexte sind nur in den ABAP Development Tools (ADT) bearbeitbar. Eine Anzeige eines DCL-Quelltexts ist auch im Repository Browser der ABAP Workbench möglich. Der DCL-Quelltext einer CDS-Rolle wird in einem anderen Editor bearbeitet als DDL-, DDLA- und DDLX-Quelltexte. Die Dokumentation der ADT beschreibt, wie die unterschiedlichen Quelltexte angelegt werden.

Hinweise

  • Die CDS-Zugriffskontrolle bietet eine zusätzliche Möglichkeit, Berechtigungen des SAP-Berechtigungskonzepts zu überprüfen. Berechtigungen des SAP-Berechtigungskonzepts beruhen auf Berechtigungsobjekten und werden in der klassischen Rollenpflege (Transaktion PFCG) vergeben. Die klassische Berechtigungsprüfung erfolgt entweder implizit, wie z.B. beim Aufruf von Transaktionen, oder explizit mit der Anweisung AUTHORITY-CHECK. Die CDS-Zugriffskontrolle erweitert diese um die implizite Auswertung von Zugriffsbedingungen.
  • Es wird empfohlen, die klassische Berechtigungsprüfung weiterhin für sogenannte Start-Berechtigungen einzusetzen, mit denen überprüft wird, ob ein Benutzer eine Anwendung überhaupt starten darf oder nicht. Die CDS-Zugriffskontrolle kann innerhalb einer Anwendung verwendet werden, um Berechtigungsprüfungen durchzuführen, welche die Berechtigung eines Benutzers in Abhängigkeit vom Datenmodell und den Daten prüft, auf welche zugegriffen werden soll.
  • Bei einem Zugriff auf CDS-Entitäten über kann im ABAP-Programm nicht unterschieden werden, ob Daten nicht gelesen werden, weil sie nicht vorhanden sind oder weil sie nicht von der CDS-Zugriffskontrolle zugelassen werden.
  • Die CDS-Zugriffskontrolle modifiziert die durch den Anwendungsquelltext durchgeführte Datenbankselektion. Die Menge der zurückgegebene Daten wird zwar reduziert, der zusätzliche Filteraufwand kann aber eine Auswirkung auf die Leistung der Anweisung haben. Die Auswirkung hängt von der Komplexität der Zugriffskontrolle, der Komplexität der geschützten CDS-Entität, der Menge an Daten in den dem Benutzer zugeordneten PFCG-Rollendaten und der Position der geschützten Entität in der konkreten Datenbankanweisung ab.
  • Wenn eine CDS-Entität als Datenquelle in einer anderen CDS-Entität verwendet wird, werden ihre Zugriffskontrollen beim Zugriff auf die umgebende Entität nicht berücksichtigt. Die CDS-Zugriffskontrolle gilt nur für die Eingangsentitäten, auf die durch ABAP SQL zugegriffen wird.
  • Die CDS-Zugriffskontrolle funktioniert nicht für mandantenübergreifende Zugriffe. Aus diesem Grund kann in der Zusatz USING oder der obsolete Zusatz CLIENT SPECIFIED nur beim Zugriff auf CDS-Entitäten verwendet werden, für welche die Zugriffskontrolle abgeschaltet ist.
  • Im Notfallmodus (Benutzer SAP*) wird die CDS-Zugriffskontrolle ausgeschaltet. Dies betrifft nicht nur PFCG-Bedingungen, sondern auch Literalzugriffsbedingungen und selbstdefinierte Aspektbedinungen.
  • Zum Abschalten der Zugriffskontrolle gibt es insbesondere folgende Möglichkeiten:
  • Wenn eine Zugriffskontrolle prinzipiell nicht sinnvoll ist, da es sich beispielsweise um eine technische Entität handelt, kann in ihrer CDS-Datendefinition die Annotation @AccessControl.authorizationCheck mit dem Wert #NOT_ALLOWED angegeben werden.

  • Wenn eine Zugriffskontrolle nur an bestimmten Stellen nicht notwendig ist, kann der Zusatz WITH PRIVILEGED ACCESS in der FROM-Klausel einer -Query verwendet werden.

  • Um die Zugriffskontrolle für eine Entität modifikationsfrei außer Kraft zu setzen, kann eine Vollzugriffsregel für die Entität in einer kundeneigenen CDS-Rolle angelegt werden.

  • Eine CDS-Entität kann auch in einer anderen CDS-Entität verschalt werden, für welche die Zugriffskontrolle abgeschaltet ist.






BAL Application Log Documentation   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10047 Date: 20240523 Time: 162706     sap01-206 ( 140 ms )