ACL-Steuerung von Funktionsfeldern
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:
|
| report_view-Vorgang | Ein Benutzer hat nur dann report_view-Zugriff auf ein Funktionsfeld, wenn alle der folgenden Bedingungen zutreffen:
|
Beispiele
- 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“.
| 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. |
| ACLs | Ergebnis |
|---|---|
|
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. |
| ACLs | Ergebnis |
|---|---|
|
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. |