ACL-Steuerung von Funktionsfeldern

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 2 Minuten Lesedauer
  • Bei der Auswertung des Zugriffs auf ein Funktionsfeld überprüft das System zusätzlich zum Überprüfen des Zugriffs auf das Funktionsfeld selbst auch den Zugriff auf die beitragenden Felder der Funktion. Beitragende Felder sind diejenigen, die als Argumente in einer bestimmten Funktionsdefinition verwendet werden.

    Weitere Informationen zu Funktionsfeldern finden Sie unter Funktionsfeld .

    In Rome Und früher überprüft das System einfach den Zugriff auf das Funktionsfeld selbst (wie bei jedem anderen Feld). Wenn die ACLs in diesem Feld Zugriff zulassen, erhält der Anwender den resultierenden Wert, unabhängig davon, ob der Anwender Zugriff auf die beitragenden Felder hat.

    In Zurich Später erfordert das System auch Zugriff auf alle beitragenden Felder, um Zugriff auf das Funktionsfeld zu ermöglichen. Wenn eine oder mehrere der beitragenden Feld-ACLs den Zugriff verweigern, verweigert das Funktionsfeld auch den Zugriff.

    Die einzigen Vorgänge, die von der neuen Anforderung betroffen sind, sind read und Report_View. Report_View hat eigene zusätzliche Anforderungen.

    Vorgang Beschreibung
    Lesevorgang Ein Anwender hat nur Lesezugriff auf ein Funktionsfeld, wenn beide der folgenden Aussagen wahr sind:
    • Der Anwender hat Lesezugriff auf das Funktionsfeld.
    • Der Anwender hat Lesezugriff auf alle beitragenden Felder, die in der Funktion verwendet werden.
    Vorgang „Report_View“ Ein Anwender hat nur dann Report_View-Zugriff auf ein Funktionsfeld, wenn alle der folgenden Elemente wahr sind:
    • Der Anwender hat Report_View-Zugriff auf das Funktionsfeld.
    • Der Anwender hat Report_View-Zugriff auf jedes der beitragenden Felder.
    • Es gibt eine nur-Rollen-Lese-ACL ohne Bedingungen und ohne Skript, und der Anwender hat diese Rolle.
    • Der Anwender hat schreibgeschützten Zugriff auf die beitragenden Felder, sodass nur ACLs ohne Bedingung oder Skript zulassen können.

    Beispiele

    Angegeben:
    • Tabelle: Gehalt
    • Spalten: Base, Bonus, total (in diesem Beispiel sind alle Ganzzahlen)
    • Funktionsfeld: Die Gesamtspalte ist als Funktionsfeld mit Funktionsdefinition markiert Glidefunktion:hinzufügen (Basis, Bonus) .
    • Beitragende Felder: Basis und Bonus, da sie in der Funktionsdefinition verwendet werden
    • Rollen: Salary_admin, Bonus_admin
    Tabelle : 1. Beispiel 1: Alle Felder erlauben Zugriff
    ACLs Ergebnis
    Gesamt, Basis, Bonus: Read und Report_View für die Rolle „Salary_admin“ ohne Bedingungen oder Skripts Einem Anwender mit der Rolle „Salary_admin“ wird Lese- und Report_View-Zugriff auf total gewährt, da er über die erforderliche Rolle verfügt.
    Tabelle : 2. Beispiel 2: Beitragendes Feld verweigert Lesezugriff
    ACLs Ergebnis
    • Gesamt, Basis: Read und Report_View für die Rolle „Salary_admin“ ohne Bedingungen oder Skripts
    • Bonus: Report_View für die Rolle „Salary_admin“ ohne Bedingungen oder Skripts
    • Bonus: Lesen Sie für die Rolle „Bonus_admin“, ohne Bedingungen oder Skripts
    Einem Anwender mit der Rolle „Salary_admin“ wird der Lese- und Report_View-Zugriff auf „total“ verweigert, da der Bonus den Lesezugriff auf seine Rolle verweigert.
    Tabelle : 3. Beispiel 3: ACL für Beitragende Felder hat Skript
    ACLs Ergebnis
    • Gesamt, Basis: Read und Report_View für die Rolle „Salary_admin“ ohne Bedingungen oder Skripts
    • Bonus: Report_View für Rolle Bonus_admin, ohne Bedingungen oder Skripts
    • Bonus: Lesen Sie für die Rolle „Salary_admin“ mit einem Skript (beachten Sie, dass es keine Rolle spielt, was im Skript enthalten ist, nur dass es vorhanden ist)
    Einem Anwender mit der Rolle „Salary_admin“ wird Lesezugriff auf total gewährt, da er über die erforderliche Rolle für alle Felder verfügt.

    Der Zugriff auf Report_View wird jedoch für denselben Anwender mit dem Skript „Salary_admin“ abgelehnt, da die Lese-ACL mit dem Skript den Zugriff standardmäßig für diesen Fall verweigert, obwohl sie über die erforderliche Rolle verfügen.