Eine Gruppe besteht aus Benutzern mit gemeinsamen Rollen und Privilegien.
Gruppen stellen eine effiziente Methode dar, um Rollen und Privilegien für mehrere Benutzer zu verwalten.
Mitgliedschaft in einer Gruppe, die Eigentümerin von Objekten ist, bedeutet auch, dass Benutzer nicht die Objektnamen qualifizieren müssen, wenn sie Vorgänge ausführen wie das Ausführen einer Prozedur, die der Gruppe gehört, oder das Abfragen einer Tabelle, die der Gruppe gehört. Wenn beispielsweise eine Tabelle namens MyData Eigentum einer Gruppe namens PersonnelData ist, in der wiederum die Benutzer-ID "M_Haneef" Mitglied ist, kann M_Haneef die Tabelle in Abfragen als MyData referenzieren statt als PersonnelData.MyData. Wenn ein Benutzer Eigentümer einer Tabelle ist, die denselben Namen hat wie eine Tabelle im Eigentum einer Gruppe, verwendet der Datenbankserver die Tabelle, die dem Benutzer gehört, nicht diejenige, die der Gruppe gehört. Wenn ein Benutzer mehreren Gruppen angehört, die eine Tabelle mit demselben Namen haben, muss auch der Benutzer den Tabellennamen qualifizieren.
In SQL Anywhere ist eine Gruppe kein Datenbankobjekt. Stattdessen werden Gruppen mithilfe von benutzerdefinierten Rollen erzeugt, wobei zwei verschiedene Ansätze möglich sind:
Auf benutzererweiterten Rollen basierender Ansatz zum Erstellen von Gruppen Benutzererweiterte Rollen sind benutzerdefinierte Rollen, die durch Erweitern einer vorhandenen Benutzer-ID zu einer Rolle erstellt werden. Bei diesem Ansatz zur Gruppenerstellung wird die Benutzer-ID erstellt und anschließend werden ihr alle für die Gruppe erforderlichen Rollen und Privilegien erteilt. Die Benutzer-ID wird in eine benutzererweiterte Rolle konvertiert und dann den Benutzern erteilt, die sie benötigen. Diese Schritte können auch in anderer Reihenfolge ausgeführt werden.
Dieser Ansatz wird beim Erstellen von Gruppen für die Replikation häufig angewendet, weil der Benutzer, der zu einer Rolle erweitert wurde, auch über Login-Funktionen verfügt.
Für Benutzer früherer Versionen von SQL Anywhere ist dieser Ansatz identisch mit dem nicht mehr empfohlenen Ansatz, bei dem mit der GRANT-Anweisung einem Benutzer GROUP erteilt wurde und anschließend anderen Benutzern MEMBERSHIP IN GROUP erteilt werden konnte.
Wenn Sie eine nach diesem Ansatz erstellte Gruppe löschen möchten, konvertieren Sie die benutzererweiterte Rolle in einen
normalen Benutzer zurück (DROP ROLE FROM USER userid
). Das Eigentum an Objekten bleibt bei dem Benutzer, der in einen normalen Benutzer zurückkonvertiert wird.
Wenn der auf benutzererweiterten Rollen basierende Ansatz verwendet wird, können Gruppen und die dazugehörigen Mitgliederinformationen aus der konsolidierten Ansicht SYSROLEGRANTS oder aus der SYSGROUPS-Kompatibilitätsansicht abgefragt werden.
Auf eigenständigen Rollen basierender Ansatz zum Erstellen von Gruppen Eigenständige Rollen sind benutzerdefinierte Rollen, die keiner Benutzer-ID zugeordnet sind. Bei diesem Ansatz zur Gruppenerstellung wird die Rolle erstellt und anschließend werden ihr alle von einer definierten Benutzergruppe benötigten Rollen und Privilegien erteilt. Die Rolle wird dann den Benutzern erteilt, die sie benötigen.
Wenn Sie eine nach diesem Ansatz erstellte Gruppe löschen möchten, löschen Sie die Rolle. Optional können Sie beim Löschen der Rolle gleichzeitig auch die Objekte löschen, deren Eigentümerin die Rolle ist.
Wenn der auf eigenständigen Rollen basierende Ansatz verwendet wird, können Gruppen und die dazugehörigen Mitgliederinformationen nicht aus der SYSGROUPS-Kompatibilitätsansicht abgefragt werden. Stattdessen können die Informationen aus der konsolidierten Ansicht SYSROLEGRANTS abgefragt werden.
Bei beiden Ansätzen erfolgt die Verwaltung der Privilegien für Gruppenmitglieder auf der Ebene der jeweiligen benutzerdefinierten Rolle statt auf der Ebene der einzelnen Benutzer-IDs.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |