Rollen im Vergleich zu Gruppen

Zugriffsrechte und Berechtigungen, die Gruppen erteilt sind, werden bei der Erstellung von Sichten, MQTs (Materialized Query Tables), SQL-Routinen, Triggern und Paketen mit statischem SQL nicht berücksichtigt. Diese Einschränkung kann durch die Verwendung von Rollen anstelle von Gruppen überwunden werden.

Rollen ermöglichen es Benutzern, Datenbankobjekte mit ihren Berechtigungen zu erstellen, die über Rollen angefordert werden, die vom Db2® -Datenbanksystem gesteuert werden. Gruppen und Benutzer werden außerhalb des DB2-Datenbanksystems, zum Beispiel durch das Betriebssystem oder einen LDAP-Server, gesteuert.

Beispiel für das Ersetzen von Gruppen durch Rollen

Das folgende Beispiel zeigt, wie Gruppen durch die Verwendung von Rollen ersetzt werden können.

Gehen Sie von drei Gruppen aus: DEVELOPER_G, TESTER_G und SALES_G. Die Benutzer BOB, ALICE und TOM sind Mitglieder dieser Gruppen, wie in der folgenden Tabelle dargestellt:
Tabelle 1. Beispiel für Gruppen und Benutzer
Gruppe Mitglieder der Gruppe
DEVELOPER_G BOB
TESTER_G ALICE, TOM
SALES_G ALICE, BOB
  1. Der Sicherheitsadministrator erstellt die Rollen DEVELOPER, TESTER und SALES, die an Stelle der Gruppen verwendet werden sollen.
    CREATE ROLE DEVELOPER
    CREATE ROLE TESTER
    CREATE ROLE SALES
    
  2. Der Sicherheitsadministrator erteilt Benutzern die Zugehörigkeit zu diesen Rollen (die Festlegung der Mitgliedschaft von Benutzern in Gruppen lag in der Zuständigkeit des Systemadministrators):
    GRANT  ROLE DEVELOPER TO USER BOB
    GRANT  ROLE TESTER TO USER ALICE, USER TOM
    GRANT  ROLE SALES TO USER BOB, USER ALICE
    
  3. Der Datenbankadministrator kann den Rollen ähnliche Zugriffsrechte oder Berechtigungen erteilen, wie sie auch die Gruppen hatten. Beispiel:
    GRANT privilege ON object TO ROLE DEVELOPER
    Der Datenbankadministrator kann anschließend den Gruppen diese Zugriffsrechte entziehen und den Systemadministrator bitten, die Gruppen aus dem System zu entfernen.

Beispiel für das Erstellen eines Triggers mit den durch eine Rolle erteilten Zugriffsrechten

Dieses Beispiel zeigt, dass der Benutzer BOB einen Trigger (TRG1) erfolgreich erstellen kann, wenn er das erforderliche Zugriffsrecht durch die Rolle DEVELOPER besitzt.

  1. Zunächst erstellt die Benutzerin ALICE die Tabelle WORKITEM:
    CREATE TABLE WORKITEM (x int)
  2. Anschließend wird das Zugriffsrecht ALTER zum Ändern der Tabelle der Benutzerin ALICE vom Datenbankadministrator der Rolle DEVELOPER erteilt.
    GRANT ALTER ON ALICE.WORKITEM TO ROLE DEVELOPER
    
  3. Der Benutzer BOB kann den Trigger TRG1 erfolgreich erstellen, weil er die Zugehörigkeit zur Rolle DEVELOPER besitzt.
    CREATE TRIGGER TRG1 AFTER DELETE ON ALICE.WORKITEM 
               FOR EACH STATEMENT MODE DB2SQL INSERT INTO ALICE.WORKITEM VALUES (1)

Hinweise

  • Rollen, die Gruppen erteilt sind, werden nicht berücksichtigt.