Ansicht
Dokumentation

ABENCDS_DCL_ROLE_COND_RULE - CDS DCL ROLE COND RULE

ABENCDS_DCL_ROLE_COND_RULE - CDS DCL ROLE COND RULE

Vendor Master (General Section)   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- DEFINE ROLE, conditional_rule

GRANT SELECT ON cds_entity
     $[WITH OPTIONAL ELEMENTS ( element1 DEFAULT  { TRUE $| FALSE }, ...  ) $]
     $[COMBINATION MODE OR $| COMBINATION MODE AND $| REDEFINITION$]
      WHERE cds_cond;


Zusätze:

1. ... WITH OPTIONAL ELEMENTS

2. ... COMBINATION MODE AND$|OR

3. ... REDEFINITION

4. ....WHERE

Wirkung

Bedingte Zugriffsregel in der Anweisung DEFINE ROLE der CDS DCL. Eine bedingte Zugriffsregel GRANT SELECT ON mit dem Zusatz WHERE schränkt den Zugriff auf eine CDS-Entität cds_entity mit Hilfe von Zugriffsbedingungen cds_cond ein.

Eine CDS-Entität kann in mehreren Zugriffsregeln einer CDS-Rolle aufgeführt werden und es kann mehrere CDS-Rollen geben, die Zugriffsregeln für eine CDS-Entität enthalten.

Wenn eine CDS-Entität in mehreren Zugriffsregeln einer CDS-Rolle oder in mehreren CDS-Rollen aufgeführt ist, werden die daraus resultierenden Zugriffsbedingungen auf die durch den Zusatz COMBINATION MODE angegebene Weise kombiniert.

Hinweis

Es ist nicht möglich, abstrakte CDS-Entitäten oder CDS-Custom-Entitäten für cds_entity anzugeben.

Zusatz 1

... WITH OPTIONAL ELEMENTS ...

Wirkung

Wenn Sie mithilfe der Bedingungsvererbung die Zugriffsbedingungen einer CDS-Entität in eine andere CDS-Entität übernehmen, können nachträgliche Änderungen an den Bedingungen der Vererbungsquelle zur Invalidierung des Vererbungsziels führen, da neu eingeführte Elemente nicht vorliegen.

Durch das Deklarieren von Elementen einer Zugriffssteuerung als optional wird festgelegt, dass diese Elemente unter Umständen in den Vererbungszielen der Zugriffsbedingungen fehlen, die diese Elemente verwenden.

Die Syntaxprüfung der erbenden Zugriffssteuerungen gibt in diesem Fall eine Warnmeldung anstelle einer Fehlermeldung aus, und Bedingungen, die diese Elemente verwenden, werden zur Laufzeit entsprechend dem deklarierten Standardwert verarbeitet (spezifische Informationen sind in der Dokumentation der entsprechenden Bedingungen enthalten).

Hinweise

  • Die Optionalität darf nur für ein direkt angegebenes Feld oder für die erste Assoziation eines Pfadausdrucks deklariert werden. Im letzteren Fall werden alle Pfadausdrücke, die mit dieser Assoziation beginnen, als optional betrachtet und mit dem Standardwert verarbeitet, wenn diese Assoziation nicht zur Laufzeit vorhanden ist. Wenn jedoch die Assoziation vorhanden ist, aber eine der folgenden Pfadkomponenten fehlt, wird dies als Fehler betrachtet, der zu einem Syntaxfehler der erbenden Zugriffssteuerung und möglicherweise zu einem Laufzeitfehler beim Entitätszugriff führt.
  • In der Zugriffssteuerung, in der die Optionalität deklariert ist, muss das Element vorhanden sein. Für nicht vorhandene Elemente können keine Zugriffssteuerungen erstellt werden.
  • Bei der Anwendung bestimmter Ersetzungsschritte kann die Optionalität bei der Bedingungsvererbung verloren gehen. Dies wird in den jeweiligen Schritten dokumentiert.
  • Die Optionalität wird nur für linksseitige CDS-Elemente angewendet, die in die aktuelle Zugriffssteuerung geschrieben wurden. Sie wird nicht für linksseitige CDS-Elemente angewendet, die aus anderen Zugriffssteuerungen übernommen wurden.
  • Die Optionalität soll eine kurzzeitige Lücke zwischen der Änderung von Zugriffsbedingungen, die als Vererbungsquelle dienen, und den notwendigen Anpassungen von CDS-Entitäten, die von erbenden Zugriffssteuerungen geschützt werden, überbrücken. Es wird davon abgeraten, sie als dauerhaften Bestandteil eines Zugriffssteuerungs-Designs zu verwenden.
  • Der Standardwert muss mit Bedacht gewählt werden. "Standardmäßig sicher" impliziert die Verwendung von DEFAULT FALSE; durch die Verwendung von DEFAULT TRUE wird deklariert, dass es vorübergehend akzeptiert werden kann, dass die Zugriffssteuerung dieses Element ggf. ignoriert. Diese Situation kann auftreten, wenn ein etabliertes Berechtigungskonzept durch zusätzliche Felder verfeinert wird.
  • Innerhalb von NOT-Bedingungen können keine optionalen Elemente verwendet werden, damit ein sicheres DEFAULT FALSE nicht versehentlich in das Boolesche Prädikat TRUE geändert wird.

Zusatz 2

... COMBINATION MODE AND$|OR

Wirkung

Mit dem optionalen Zusatz COMBINATION MODE AND$|OR kann gesteuert werden, wie bei Vorhandensein mehrerer Zugriffsregeln für die gleiche CDS-Entität cds_entity deren Zugriffsbedingungen kombiniert werden. Der Zusatz kann angebracht werden unabhängig davon, ob es bereits andere Zugriffsregeln für die CDS-Entität gibt.

Mit COMBINATION MODE OR werden die Zugriffsbedingungen mit dem logischen Operator "oder" kombiniert. Das Anlegen solcher Zugriffsregeln führt somit zu einer Abschwächung der Einschränkungen.

Mit COMBINATION MODE AND wird die aktuelle Zugriffsregel mit dem logischen Operator "und" mit den übrigen Zugriffsregeln kombiniert. Es liegt also eine Verschärfung der Einschränkungen vor.

Bei Vorhandensein mehrerer Zugriffsregeln mit Kombinationsarten "AND" (cond_and_1, cond_and_2, ...) und "OR" (cond_or_1, cond_or_2, ...) ergibt sich die Gesamtbedingung durch folgenden Ausdruck:

( cond_or_1 OR cond_or_2 OR ... ) AND cond_and_1 AND cond_and_2 AND ...

Eine Vollzugriffsregel übersteuert allerdings grundsätzlich obige Konstruktion und führt zu einer Vollzugriffsregel als Endergebnis, auch wenn es Regeln mit Verknüpfungsmodus COMBINATION MODE AND.

Für den Zusatz COMBINATION MODE OR gilt:

  • Der Zusatz COMBINATION MODE OR muss nicht explizit angegeben werden. Wenn es mehr Zugriffsregeln für eine CDS-Entität gibt, sind diese implizit mit dem logischen Operator "oder" kombiniert. Aus Konsistenzgründen wird jedoch empfohlen, den Zusatz COMBINATION MODE OR zu verwenden.
  • Bestehende Zutrittskontrollen ohne den expliziten Zusatz COMBINATION MODE OR sind gültig.

Zusatz 3

... REDEFINITION

Wirkung

Mit dem optionalen Zusatz REDEFINITION wird signalisiert, dass diese Zugriffsregel die einzige existierende Zugriffsregel für die CDS-Entität sein soll und alle anderen eventuell existierenden Zugriffsregeln zu ignorieren sind. Der Zusatz erlaubt es Kunden und Partnern, alle von SAP ausgelieferten Zugriffsregeln für eine CDS-Entität modifikationsfrei durch eigene Zugriffsregeln zu ersetzen. Mit dem Sprachelement INHERITING CONDITIONS FROM SUPER können dennoch die von SAP ausgelieferten Bedingungen in diesen eigenen Zugriffsregeln verwendet werden.

Für den Zusatz REDEFINITION gilt:

  • Dieser Zusatz ist nur in Kundensystemen möglich. SAP wird solche Zugriffsregeln nicht ausliefern.
  • Der Zusatz kann auch angebracht werden, wenn es keine anderen Zugriffsregeln für eine Entität gibt. Er sorgt dafür, dass die hier definierten Bedingungen durch später hinzukommende Zugriffsregeln nicht außer Kraft gesetzt werden können.
  • Der Zusatz darf bei maximal einer Zugriffsregel für eine CDS-Entität verwendet werden. Die mehrfache Verwendung führt zu einem Aktivierungsfehler oder zum Importfehler.
  • Dieser Zusatz setzt auch bestehende Vollzugriffsregeln für eine CDS-Entität außer Kraft. SAP wird jedoch keine Vollzugriffsregeln ausliefern, so dass diese Aussage sich nur auf kundeneigene Vollzugriffsregeln bezieht, die dann durch kundeneigene REDEFINITION-Regeln übersteuert werden.

Zusatz 4

... WHERE

Wirkung

Über eine WHERE-Klausel wird eine Zugriffsbedingung cds_cond für die CDS-Entität cds_entity definiert. Bei einem -Zugriff auf eine CDS-Entität, für die in einer Rolle eine Zugriffsregel aufgestellt ist, werden die Zugriffsbedingungen implizit ausgewertet und deren Selektion entsprechend dadurch eingeschränkt, dass bei einem Lesezugriff über SELECT die Selektionsbedingung der von der Datenbankschnittstelle an die Datenbank übergebenen Anweisung über ein logisches "und" um die Zugriffsbedingung erweitert wird.

Beispiel

Die folgende CDS-Rolle DEMO_CDS_ROLE_LIT_PFCG definiert in einer Zugriffsregel eine Zugriffsbedingung für die CDS-View demo_cds_auth_lit_pfcg auf. Es sind sowohl eine PFCG-Bedingung für das Berechtigungsobjekt S_CARRID als auch eine Literalbedingung für das Währungsfeld angegeben.

Die CDS-View sieht wie folgt aus:

Das Programm DEMO_CDS_AUTH_LIT_PFCG greift mit SELECT auf die View zu. Die CDS-Zugriffskontrolle schränkt die Selektion auf die Daten ein, für die der aktuelle Benutzer gemäß der klassischen Rollenpflege (Transaktion PFCG) eine Berechtigung hat und die der Literalbedingung entsprechen.






TXBHW - Original Tax Base Amount in Local Currency   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 15401 Date: 20240523 Time: 173525     sap01-206 ( 222 ms )