Guten Morgen, Bundy.
Um eine möglichst hohe funktionale Sicherheit einer
DB-Anwendung zu erreichen werden oft detaillierte Rechte an jeden User vergeben. Das Problem mit dem
GUI-Client ist, dass zu keinem Zeitpunkt Aktionen angestoßen werden sollen, die im aktuellen Benutzerprofil unzulässig sind. Das Deaktivieren von UI-Controls erfüllt die Erwartungshaltung des Benutzers und die Berechtigungen im RDBMS garantieren die Sicherheit. Da eine zu enge Verzahnung von Client und RDBMS im Bereich der Rechte weder praktikabel noch wünschenswert ist, wurden von vielen Herstellern application roles eingeführt.
Die Rechte werden nicht mehr an den User, sondern an die Role gebunden. Dem User werden keine Rechte auf Datenobjekte mehr eingeräumt, sondern nur noch das Recht eine bestimmte Rolle einzunehmen. Das auf der Rolle basierende Benutzerprofil wird im UI Mangement Code der Anwendung nachgebildet. Der Vorteil dieses Ansatzes ist ein Höchstmaß an Sicherheit und Bedienungskomfort. Der Nachteil ist, dass eine neue Rolle Änderungen am Quelltext nötig macht. Ich halte diesen Nachteil nicht für gravierend, da der Nachführungsaufwand auf der Anwendungsseite eher klein ist, wenn man ihn mit dem konzeptionellen Aufwand vergleicht.
Die von dir vorgestellten Tabellen - hier und in deinem anderen thread - halte ich nicht für produktiv. Ich setze da eher auf zentrales Action-Management.
Grüße vom marabu