ACL-Steuerung von Funktionsfeldern

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 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 RomeUnd früher überprüft das System einfach den Zugriff auf das Funktionsfeld selbst (wie bei jedem anderen Feld). Wenn die ACLs für dieses Feld Zugriff zulassen, erhält der Anwender den resultierenden Wert, unabhängig davon, ob der Anwender Zugriff auf die beitragenden Felder hat.

    In YokohamaSpä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 Optionen 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 Optionen 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 (alle sind Ganzzahlen in diesem Beispiel)
    • Funktionsfeld: Die Gesamtspalte ist als Funktionsfeld mit Funktionsdefinition markiert Glidefunktion:Add(Base, Bonus) .
    • Beitragende Felder: Basis und Bonus, da sie in der Funktionsdefinition verwendet werden
    • Rollen: Salary_admin, Bonus_admin
    Tabelle : 1. Beispiel 1: Alle Felder ermöglichen 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“ abgelehnt, 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: Für die Rolle „Salary_admin“ mit einem Skript lesen (beachten Sie, dass es nicht wichtig ist, 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.

    Derselbe Anwender mit „Salary_admin“ wird jedoch den Zugriff auf „Report_View“ abgelehnt, da die Lese-ACL mit dem Skript den Zugriff standardmäßig für diesen Fall verweigert, auch wenn er über die erforderliche Rolle verfügt.