Benutzerverwaltung
Benutzerverwaltung Vergabe und Verwaltung von benutzerabhängigen Rechten
- Siehe: Blog
Die Benutzerverwaltung wird im Designer über das Menü Extras / Benutzerverwaltung... aufgerufen. Im folgenden wird das Benutzersystem und der Umgang damit erläutert:
Benutzer
Ausgangspunkt eines jeden Benutzersystems ist der Benutzer selbst. In CONZEPT 16 wird der Benutzer durch ein Benutzer-Objekt repräsentiert. Jedes Benutzer-Objekt verfügt über verschiedene Eigenschaften (Properties). Die wichtigsten Eigenschaften sind der Name (_UrmPropName) und das Kennwort (_UrmPropPassword), mit denen sich der Anwender an der Datenbank anmeldet. Der Name muss innerhalb einer Datenbank eindeutig sein. Neben den vordefinierten Eigenschaften kann das Benutzer-Objekt um zusätzliche Eigenschaften erweitert werden. Die Applikation kann dadurch zusätzliche Daten im Benutzer-Objekt speichern.
In einer neu erstellten Datenbank sind bereits die beiden Benutzer SUPERUSER und USER mit leerem Kennwort angelegt. Bei der Anmeldung als SUPERUSER reicht die Angabe von SU als Benutzer aus. Der Benutzer SUPERUSER kann nicht gelöscht werden.
Unabhängig vom verwendeten Client ist zum Öffnen einer Datenbank immer die Angabe eines Benutzers erforderlich. Alle Aktionen (Ausführen von Prozeduren, Laden von Dialogen usw.) finden somit immer in einem Benutzerkontext statt.
Die Berechtigungen eines Benutzers ergeben sich aus seiner Zugehörigkeit zu einer oder mehreren Benutzergruppen , im Benutzer-Objekt selbst werden keine Rechte definiert.
Benutzergruppen
Eine Benutzergruppe fast mehrere Benutzer zusammen, um eine einfachere Vergabe von Rechten zu gewährleisten. Die Berechtigungen werden immer für eine Benutzergruppe definiert, wodurch alle Mitglieder dieser Gruppe die selben Rechte erhalten.
Ein Benutzergruppen-Objekt wird durch seinen Namen identifiziert und verfügt über eine Reihe von vordefinierten Eigenschaften . Genau wie beim Benutzer-Objekt können zusätzliche Eigenschaften angelegt werden. Neben seinen Eigenschaften verfügt das Benutzergruppen-Objekt über Rechte auf mehrere Elementgruppen . Ein Benutzer-Objekt kann Mitglied in mehreren Benutzergruppen sein. Die effektiven Rechte des Benutzers ergeben sich in diesem Fall durch die Addition der Rechte aller Benutzergruppen, zu denen er gehört.
In einer leeren Datenbank sind bereits die beiden Benutzergruppen _Everyone und _Administrators vorhanden. Die Gruppe _Everyone dient als Basisgruppe für alle Benutzer, um die minimal benötigten Rechte für die Applikation zur Verfügung zu stellen. Die Gruppe _Administrators verfügt automatisch über alle Rechte in der Datenbank. Beide Gruppen können nicht gelöscht werden. Der Benutzer SUPERUSER ist Mitglied von _Administrators und der Benutzer USER Mitglied von _Everyone.
Elementgruppen
Genauso wie Benutzergruppen mehrere Benutzer mit den gleichen Benutzerrollen zusammenfassen, fassen Elementgruppen mehrere Applikationselemente zusammen, für die die selben Rechte benötigt werden. Die Elementgruppe kann sowohl reale Objekte aus der Datenbank (bestimmte Dialoge, einzelne Prozeduren, ein oder mehrere Datensatz-Tabellen usw.) als auch virtuelle Objekte der Applikation (Programm-Module, Funktionalitäten usw.) beinhalten. Durch die Zusammenfassung von mehreren Elementen zu Elementgruppen wird die Rechtevergabe wesentlich übersichtlicher. Gerade wenn es um die Berechtigungen eines Anwendungsbereichs geht, können alle Prozeduren, Dialoge, Tabellen usw. aus diesem Bereich in eine Elementgruppe zusammengefasst werden. Für alle Elemente werden dann gleiche Rechte vergeben. Jedes reale oder virtuelle Element kann Mitglied in bis zu 128 verschiedenen Elemengruppen sein (maximal 32 bei Texten und Prozeduren).
Auch ein Elementgruppen-Objekt wird durch seinen Namen identifiziert und verfügt sowohl über vordefinierte als auch über anwendungsdefinierte Eigenschaften.
In jeder Datenbank sind mehrere sogenannte Standard-Elementgruppen vordefiniert. In diesen Elementgruppen sind jeweils alle Elemente eines bestimmtem Typs enthalten. Zum Beispiel gehören alle Prozeduren automatisch zur Gruppe _procedure. Eine Liste aller Standard-Elementgruppen befindet sich im Abschnitt Verwaltung der Elementgruppen .
Zusammenarbeit der Objekte
Die drei Objekte der Benutzerverwaltung treten über Listen miteinander in Beziehung. Innerhalb des Benutzer-Objekts gibt es eine Mitgliedsliste von Benutzergruppen. Bei den Benutzergruppen gibt es eine Liste mit den Mitgliedern (Benutzer-Objekte) und eine Liste mit Elementgruppen einschließlich deren Rechte.

Ob ein Benutzer ein bestimmtes Recht an einem Applikationselement besitzt, hängt also davon ab, ob er Mitglied einer Benutzergruppe ist, die das entsprechende Recht besitzt. Innerhalb der Benutzergruppe muss eine Elementgruppe mit dem entsprechenden Recht eingetragen sein, in der das Element enthalten ist. Ein Recht wird letztendlich in der Benutzergruppe definiert, wo die Elementgruppe eingetragen ist.
Berechtigungen
In CONZEPT 16 werden folgende Berechtigungen verarbeitet:
- Read (R):
_UrmPermReadLesen und Anzeigen - Create (C):
_UrmPermCreateAnlegen - Modify (M):
_UrmPermModifyÄndern - Modify Owner (MO):
_UrmPermModifyOwnerÄndern bei Objektbesitz - Delete (D):
_UrmPermDeleteLöschen - Delete Owner (DO):
_UrmPermDeleteOwnerLöschen bei Objektbesitz - Execute (X):
_UrmPermExecuteAusführen - Config (CF):
_UrmPermConfigKonfiguration
Da sich die Rechte jeweils auf die Elemente in einer Elementgruppe beziehen, gibt es für die Elementgruppe selbst drei zusätzliche Rechte:
- Read Element (RE):
_UrmPermElmGroupReadBerechtigung Elementgruppen lesen - Insert Element (IE):
_UrmPermElmGroupInsertBerechtigung Element zur Gruppe hinzufügen - Delete Element (DE):
_UrmPermElmGroupDeleteBerechtigung Element aus Gruppe löschen
Speziell für das Zuordnen von Benutzern zu Benutzergruppen gibt es die folgenden Berechtigungen:
- Insert Member (IM):
_UrmPermElmGroupReadBerechtigung Benutzer zu Benutzergruppe hinzufügen - Delete Member (DM):
_UrmPermElmGroupInsertBerechtigung Benutzer aus Benutzergruppe entfernen
Eine Berechtigung für ein Element entsteht, wenn einer Benutzergruppe eine Elementgruppe hinzugefügt wird und damit gleichzeitig die Rechte auf diese Elementgruppe definiert werden. Ist ein Element in keiner Elementgruppe einer Benutzergruppe enthalten, hat diese Benutzergruppe keine Berechtigung für dieses Element. Die effektiven Rechte für einen Benutzer entstehen durch die Kombination aller Rechte aus den Benutzergruppen, in denen der Benutzer Mitglied ist.
Eine Berechtigung kann erteilt oder entzogen werden. Auf diese Weise können auch "Negativ-Gruppen" erstellt werden, die bestimmte Rechte wieder entfernen. Gibt es für ein Applikationselement sowohl das erteilte, wie das entzogene Recht, setzt sich das entzogene Recht durch.
Beispiel:
In einer Elementgruppe "ElmTblSales" sind alle Tabellen zusammengefasst, die zum Erstellen von Angeboten, Abwickeln von Aufträgen usw. notwendig sind. Darüber hinaus existieren die Elementgruppen "ElmProcCom" und "ElmProcSales" in denen alle Bibliotheken und alle Prozeduren, die zur Abwicklung von Angeboten und Aufträgen benötigt werden, zusammengefasst sind. Es werden drei Benutzergruppen erstellt: "Sales", "Developer" und "Visitor". Folgende Rechte werden vergeben:
| _tables | ElmTblSales | ElmProcSales | ElmProcCom | |
|---|---|---|---|---|
| Visitor | M- D- CF- | C- M- D- | C- M- D- | |
| Sales | R+ C+ M+ D+ | X+ | X+ | |
| Developer | R+ C+ M+ D+ X+ CF+ | R+ C+ M+ D+ X+ | R+ C+ M+ D+ X+ |
Die Elementgruppe "_tables" wird von CONZEPT 16 zur Verfügung gestellt und enthält alle Tabellen der Datenbank. Die mit einem Minuszeichen versehenen Rechte werden der Benutzergruppe entzogen, die Rechte mit einem Pluszeichen werden erteilt.
Ein Benutzer der Benutzergruppe "Sales" hat innerhalb der relevanten Tabellen alle Rechte, die er benötigt, um Datensätze zu lesen, zu erzeugen, zu ändern und zu löschen. Die notwendigen Prozeduren darf er ausführen. Ein Einsehen der Prozeduren oder gar Ändern und neu übersetzen ist ihm nicht möglich. Da der Benutzer nur in einer Benutzergruppe Mitglied ist, bestehen seine effektiven Rechte auch nur aus den in der Benutzergruppe angegebenen Rechten.
Ein weitere Benutzer wird angelegt. Dieser Benutzer ist nur vorübergehend Gast im Verkauf der Firma. Der Benutzer wird den Benutzergruppen "Sales" und "Visitor" zugeordnet. Seine effektiven Rechte sind durch die Besucher-Gruppe eingeschränkt, so kann er keine Datensätze Ändern oder löschen. Die entzogenen Rechte in bezug auf die Prozeduren wirken sich nicht weiter aus, der schon die "Sales"-Gruppe hier nur ausführende Rechte besitzt.
Die effektiven Rechte des Besuchers sehen wie folgt aus:
| _tables | ElmTblSales | ElmProcSales | ElmProcCom | |
|---|---|---|---|---|
| Effektiven Rechte | M- D- CF- | R+ C+ M- D- CF- | C- M- D- X+ | C- M- D- X+ |
Bekommt die Firma einen weiteren Gast in der Entwicklungsabteilung, so bekommt dessen Benutzer die Mitgliedschaft in den Benutzergruppen "Developer" und "Visitor". Die effektiven Rechte sind dann wie folgt:
| _tables | ElmTblSales | ElmProcSales | ElmProcCom | |
|---|---|---|---|---|
| Effektiven Rechte | M- D- CF- | R+ C+ M- D- X+ CF- | R+ C- M- D- X+ | R+ C- M- D- X+ |
Verwaltung
Die Verwaltung des Benutzersystems kann über den Designer oder prozedural vorgenommen werden. Die Verwaltung über den Designer gliedert sich in die folgenden Bereiche:
Für die prozedurale Steuerung des Benutzersystems werden die folgenden Objekte benötigt:
Über die Funktion WinUrmDialog () kann die Benutzerverwaltung in die eigene Anwendung integriert werden.