Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Benutzer- und Datenbanksicherheit » Benutzersicherheit (Rollen und Privilegien)

 

Gruppen

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.

 Beispiele für beide Ansätze
 Siehe auch