Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:accesscontrol

Berechtigungs-Konzept

Die SmartEngine ist vom Grundansatz her restriktiv aufgebaut und unterscheidet zwei Berechtigungs-Ebenen:

  • Datenbank-Berechtigungen
  • Engine-Berechtigungen

Die erste Ebene wird von der Datenbank-Software durchgesetzt. Sie ist eher einfach gehalten, trotzdem aber bereits sehr sicher. Die Steuerung erfolgt ausschließlich automatisch, weswegen wir von manuellen Einstellungen und Änderungen abraten, da diese durch ein Software-Update u.U. zunichte gemacht werden. Hinweis : Sämtliche „customized“ Objekte bleiben natürlich von einem Update unberührt, sofern die Konventionen (s. Kapitel „Namens-Konventionen“) eingehalten wurden.

Konfigurierbare und zudem wesentlich feinere und umfangreichere Möglichkeiten, den Zugriff auf Daten zu steuern, gibt es erst in der Engine, deren Einhaltung durch Prozeduren gewährleistet wird.

Genaueres folgt nun in den beiden nächsten Abschnitten :

Datenbank-Berechtigungen

Lese- und Schreibrechte auf Tabellen sind grundsätzlich nicht vorhanden - bis auf ganz wenige Ausnahmen, die dem Import von Daten dienen. Anmerkung : Benutzer mit „sa“-Rolle (sogenannte „system administrator“) und der Besitzer der Datenbank (der spezielle Benutzer „dstore“) können zwar grundsätzlich sämtliche Daten manipulieren, dies ist aber (wie eingangs schon erwähnt) ausdrücklich untersagt ! Lesender und schreibender Zugriff auf die Daten in den Tabellen erfolgt über Prozeduren, die sich in zwei Arten aufteilen :

  • Intern : kein Benutzer darf diese Prozeduren direkt ausführen
  • Extern : nur bestimmte Gruppen von Benutzern dürfen diese Prozeduren direkt ausführen

Anmerkung : Interne Prozeduren zeichnen sich dadurch aus, daß ihr Name mit einem „_“ beginnt (s.a. „Namens-Konventionen“)

Es gibt genau zwei Gruppen von Datenbank-Benutzern, die Prozeduren direkt ausführen dürfen, nämlich „admin“ und „public“.

Die „public“-Gruppe ist eine von der eingesetzten Datenbank-Software vorgegebene Gruppe, der implizit alle Benutzer einer Datenbank angehören. Daher bedeutet ein Ausführungsrecht für die „public“-Gruppe, daß jeder Benutzer die Prozedur ausführen darf. Typischerweise bekommt die „public“-Gruppe Ausführungsrechte auf Prozeduren, die keine „sensiblen“ Daten auslesen oder manipulieren, bzw. die aufgrund spezieller Pflicht-Angaben von Parameter-Werten (die natürlich validiert werden) nur eingeschränkten Zugriff haben.

Die Gruppe „admin“ ist eine bei der Installation der SmartEngine angelegte Gruppe, der Ausführungsrechte auf Prozeduren vergeben werden, die vorwiegend der Konfiguration und Datenpflege dienen. Anmerkung : Dies sind Prozeduren, deren Name auf „_Ad“ endet (s.a. Abschnitt „Prozeduren“ im Kapitel „Namens-Konventionen“). Sämtliche Berechtigungen auf Datenbank-Ebene werden von der Installation und den Updates der SmartEngine automatisiert eingerichtet bzw. verändert.

Engine-Berechtigungen

Alle Berechtigungen innerhalb der Engine sind konfigurierbar. Dabei unterscheiden wir nochmals zwei Arten von Berechtigungen, und zwar hinsichtlich :

  • Funktionen und
  • Daten

Funktionale Einschränkungen betreffen die Ausführung von bestimmten Prozeduren - generell und in Abhängigkeit von Parameter-Werten.

Der Zugriff auf Daten bzw. auf bestimmte Teil-Daten hingegen wird Prozedur- übergreifend konfiguriert, was man sich z.B. für Einkaufspreise von Artikeln klarmachen kann : wenn diese Information bestimmten Personen nicht zugänglich sein soll, dann muß dies nicht nur bei der Prozedur zur Ermittlung von Artikel- Informationen implementiert sein, sondern auch z.B. in einer Suche nach Artikeln anhand dieser Information.

Wichtig für das grundlegende Verständnis der Berechtigungs-Arten und -Vergabe ist die Unterscheidung von :

  • Benutzern und
  • Personen

Ganz vereinfacht gesprochen sind Benutzer letztlich Benutzer der Datenbank, die aber in der Engine selbst (sprich in einer Tabelle) gespeichert sind, wohingegen Personen quasi Kunden-, Mitarbeiter- und Lieferanten-Daten darstellen. Genaueres ist in „Benutzer und Personen“ nachzulesen. Anmerkung : Wann immer wir im folgenden nur von Benutzern sprechen, sind die in der Engine gespeicherten Benutzer gemeint. Wenn wir Datenbank-Benutzer meinen, nennen wir sie auch so.

Entscheidender und im Zusammenhang von Berechtigungen relevanter Unterschied zwischen Benutzern und Personen ist, wer die Identifikation durchführt und wann sie durchgeführt wird bzw. wie lange sie gültig ist. Bei Benutzern tut dies die Datenbank-Software anhand eines (Login-)Namens und zugehörigem Passwort zu Anfang einer Sitzung - die Identifikation wird bis zum Ende nicht nochmals geprüft, egal welche und wieviele Anfragen dann ausgeführt werden. Personen hingegen werden von Engine-Prozeduren anhand von übergebenen Parameter-Werten identifiziert (s.pm_CheckPersonIdentity_Pu), und zwar jedesmal - bei jedem Aufruf einer Prozedur also, die eine Personen-Identifizierung verlangt.

Funktionale Einschränkungen können ausschließlich für Benutzer konfiguriert werden, auf Daten-Ebene gibt es sowohl für Benutzer als auch Personen Möglichkeiten der Zugriffs-Beschränkung.

Konkret sind für die Vergabe von funktionalen Berechtigungen (für Benutzer) die folgenden Prozeduren zuständig :

Hinweis : Um den Konfigurations-Aufwand hinsichtlich der funktionalen Berechtigungen zu vereinfachen, gibt es bestimmte vordefinierte Gruppen von Benutzern, für die sowohl bei Installation als auch bei Updates automatisiert (Engine-)Ausführungs-Rechte auf Prozeduren vergeben werden.

Eine Liste der typischen Benutzer findet sich Benutzer und Logins.

Der Zugriff auf Daten für Benutzer und/oder Personen zieht sich quer über sämtliche Bereiche der SmartEngine, weswegen hier nur ein kleiner Auszug aus der Liste aller Prozeduren für entsprechende Konfigurationen gegeben werden soll :

engine/accesscontrol.txt · Zuletzt geändert: 13.11.2014 (Externe Bearbeitung)