ACL-Steuerung von Funktionsfeldern

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 2 Minuten Lesedauer
  • Bei der Auswertung des Zugriffs auf ein Funktionsfeld überprüft das System nicht nur den Zugriff auf das Funktionsfeld selbst, sondern auch den Zugriff auf die beitragenden Felder der Funktion. Beitragende Felder werden als Argumente in einer bestimmten Funktionsdefinition verwendet.

    Weitere Informationen zu Funktionsfeldern finden Sie unter Funktionsfeld.

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

    In Washington DC und höher erfordert das System auch Zugriff auf alle beitragenden Felder, um den Zugriff auf das Funktionsfeld zu ermöglichen. Wenn eine oder mehrere der beitragenden Feld-ACLs den Zugriff verweigern, verweigert auch das Funktionsfeld den Zugriff.

    Die einzigen von der neuen Anforderung betroffenen Vorgänge sind „read“ und „report_view“. Für report_view gelten eigene zusätzliche Anforderungen.

    Vorgang Beschreibung
    Lesevorgang Ein Benutzer hat nur dann Lesezugriff auf ein Funktionsfeld, wenn beide der folgenden Bedingungen zutreffen:
    • Der Benutzer hat Lesezugriff auf das Funktionsfeld.
    • Der Benutzer hat Lesezugriff auf alle in der Funktion verwendeten beitragenden Felder.
    report_view-Vorgang Ein Benutzer hat nur dann report_view-Zugriff auf ein Funktionsfeld, wenn alle der folgenden Bedingungen zutreffen:
    • Der Benutzer hat report_view-Zugriff auf das Funktionsfeld.
    • Der Benutzer hat report_view-Zugriff auf jedes der beitragenden Felder.
    • Es gibt eine ACL mit nur Lesezugriff ohne Bedingungen und ohne Skript, und der Benutzer hat diese Rolle.
    • Der Benutzer hat nur über die Rolle Lesezugriff auf die beitragenden Felder, sodass nur ACLs ohne Bedingung oder Skript dies zulassen können.

    Beispiele

    Gegeben:
    • Tabelle: Gehalt
    • Spalten: Basis, Bonus, Summe (in diesem Beispiel sind alle Ganzzahlen)
    • Funktionsfeld: Die Gesamtsummenspalte wird als Funktionsfeld mit der Funktionsdefinition glidefunction:add(base,bonus)markiert.
    • Beitragende Felder: Basis und Bonus, da sie in der Funktionsdefinition verwendet werden
    • Rollen: „salary_admin“, „bonus_admin“.
    Tabelle : 1. Beispiel 1: Alle Felder erlauben den Zugriff
    ACLs Ergebnis
    insgesamt, Basis, Bonus: read und report_view für Rolle „salary_admin“, ohne Bedingungen oder Skripts Einem Benutzer mit der Rolle „salary_admin“ wird Lese- und report_view-Zugriff auf „Gesamt“ 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 Rolle „salary_admin“, ohne Bedingungen oder Skripts
    • Bonus: report_view für Rolle „salary_admin“ , ohne Bedingungen oder Skripts
    • Bonus: Lesezugriff für die Rolle „bonus_admin“, ohne Bedingungen oder Skripts
    Einem Benutzer mit der Rolle „salary_admin“ wird der Lese- und report_view-Zugriff auf „total“ verweigert, da Bonus den Lesezugriff auf seine Rolle verweigert.
    Tabelle : 3. Beispiel 3: Beitragendes Feld ACL hat Skript
    ACLs Ergebnis
    • gesamt, Basis: read und report_view für Rolle „salary_admin“, ohne Bedingungen oder Skripts
    • Bonus: report_view für Rolle „bonus_admin“, ohne Bedingungen oder Skripts
    • Bonus: Lesezugriff 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 Benutzer mit der Rolle „salary_admin“ wird Lesezugriff auf „Gesamt“ gewährt, da er die erforderliche Rolle für alle Felder hat.

    Dem gleichen Benutzer mit „salary_admin“ wird jedoch der Zugriff auf „report_view“ verweigert, da die Lese-ACL mit dem Skript den Zugriff für diesen Fall standardmäßig verweigert, obwohl er über die erforderliche Rolle verfügt.