Ansicht
Dokumentation

ABENCDS_DCL_ROLE_CONDITIONS - CDS DCL ROLE CONDITIONS

ABENCDS_DCL_ROLE_CONDITIONS - CDS DCL ROLE CONDITIONS

Vendor Master (General Section)   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- DEFINE ROLE, condition

... literal_condition
  $| pfcg_condition
  $| aspect_condition
  $| user_condition
  $| inherit_condition
  $| dcl_function
  $| TRUE
  $| FALSE
  $| VOID ...


Wirkung

Bestandteil einer Zugriffsbedingung cds_cond in einer Zugriffsregel der Anweisung DEFINE ROLE der CDS DCL. Es können folgende Arten von Bedingungen angegeben werden, die über AND oder OR kombinierbar sind:

  • Literalbedingungen literal_condition, die ein Element einer CDS-Entität mit fest vorgegebenen Werten vergleichen.
  • Selbstdefinierte Aspekte aspect_condition, die Elemente einer CDS-Entität mit Wertemengen einer beliebigen Entität verknüpfen, die mit dem aktuellen Benutzernamen als Selektionsbedingung erreichbar sind.
  • Benutzerbedingungen user_condition als Spezialfall einer Literalbedingung, auf deren rechten Seite der Benutzername des aktuellen Benutzers als Operand verwendet wird.
  • Vererbungsbedingungen inherit_condition, welche Bedingungen aus anderen CDS-Rollen übernehmen.
  • Funktionalitäten der DCL dcl_function werden im Applikationsserver ausgewertet, bevor die Anweisung an die Datenbank gesendet wird. Die derzeit vorhandenen Funktionalitäten der DCL geben ein Boolesche Prädikat zurück und erlaubt in Kombination mit AND- und OR-Bedingungen das Aktivieren oder Deaktivieren von Teilen der Zugriffsbedinungen, basierend auf dem Funktionsergebnis.
  • Boolesche Prädikate TRUE und FALSE. Diese Bedingungen sind immer erfüllt bzw. nicht erfüllt. Sie werden bei der Definition einer Rolle in aller Regel nicht benötigt, können aber bei der Vererbung von Bedingungen implizit erzeugt werden.
  • Das Prädikat VOID. Eine Bedingung mit dem Wert VOID wird behandelt als wäre sie nicht vorhanden.
VOID Bedingungen werden bei der Definition einer Rolle nicht benötigt und können bei der Vererbung implizit erzeugt werden. Im Zusammenspiel mit anderen Bedingungen gelten die folgenden Regeln:
  • X AND VOID = VOID AND X = X

  • X OR VOID = VOID OR X = X

  • NOT VOID = VOID

  • Eine Zugriffsregel darf nicht nur VOID Bedingungen beinhalten.

Auf der linken Seite einer solchen Bedingung können Elemente der CDS-Entität, für welche die Zugriffsbedingung definiert wird, direkt oder über Pfadausdrücke angegeben werden. Dabei gibt es folgende Einschränkungen:

Hinweise

  • Es wird empfohlen, ein element einer CDS-Entität in der CDS DCL immer direkt anzugeben und Pfadausdrücke nur in Ausnahmefällen zu verwenden. Insbesondere mehrwertige Pfadausdrücke können die Laufzeit einer Query negativ beeinträchtigen.
  • Wie eine in einer CDS-Rolle für eine CDS-Entität definierte Zugriffsbedingung beim Zugriff auf die CDS-Entität über intern ausgeprägt wird, kann im Werkzeug SQL-Trace (Transaktion ST05) z.B. in Form zusätzlicher allgemeiner Tabellenausdrücke beobachtet werden. Die Umsetzung ist aber nicht festgelegt und kann sich von Release zu Release ändern. Insbesondere kann beim Vorliegen weiterer Bedingungen die aus einer CDS-Rolle resultierende Teilbedingung gegebenenfalls reduziert oder ganz weggelassen werden.





ROGBILLS - Synchronize billing plans   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8442 Date: 20240606 Time: 012100     sap01-206 ( 103 ms )