IBM Db2 für die Berechtigungen von „ z/OS “ konfigurieren

In dieser Anleitung wird beschrieben, wie Sie einer Anwendungs-Benutzer-ID oder einem Dienstkonto die erforderlichen Berechtigungen für „ IBM® Db2® “ für „ z/OS “ erteilen.

Vorbereitende Schritte

Stellen Sie sicher, dass Folgendes vorhanden ist:
  • IBM Db2 für die Administratorrechte in „ z/OS “.
  • Die von der Anwendung verwendete Benutzer-ID oder das von der Anwendung verwendete Dienstkonto.
  • Der Schemaname, der die Anwendungstabellen enthält.

Vorgehensweise

  1. Geben Sie die Benutzer-ID oder das Dienstkonto von „ IBM Db2 “ an, dem Sie Berechtigungen erteilen. Zum Beispiel: Anwendungs-Benutzer-ID (APPUSER) oder Dienstkonto (SVCACCT).
  2. Erteilen Sie Berechtigungen auf Tabellenebene entsprechend den von der Anwendung ausgeführten Vorgängen.
    -- For tables requiring read access
    GRANT SELECT ON <SCHEMA>.<TABLE_NAME> TO <USER_ID>;
    
    -- For tables requiring create (insert) access
    GRANT INSERT ON <SCHEMA>.<TABLE_NAME> TO <USER_ID>;
    
    -- For tables requiring update access
    GRANT UPDATE ON <SCHEMA>.<TABLE_NAME> TO <USER_ID>;
    
    -- For tables requiring delete access
    GRANT DELETE ON <SCHEMA>.<TABLE_NAME> TO <USER_ID>;
    Beispiel: Vollständigen Zugriff zum Erstellen, Abrufen, Aktualisieren und Löschen einer Tabelle gewähren
    GRANT SELECT, INSERT, UPDATE, DELETE
    ON MYSCHEMA.EMPLOYEES
    TO APPUSER;
  3. Erteilen Sie SELECT Berechtigungen für die erforderlichen Systemkatalogtabellen unter Db2, um die Metadatenermittlung zu ermöglichen.
    GRANT SELECT ON SYSIBM.SYSTABLES TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSTABAUTH TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSCOLUMNS TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSINDEXES TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSKEYS TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSFOREIGNKEYS TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSRELS TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSKEYCOLUSE TO <USER_ID>;
  4. Überprüfen Sie durch Abfrage des Systemkatalogs, ob die Berechtigungen erfolgreich erteilt wurden.
    -- Verify table-level privileges
    SELECT *
    FROM SYSIBM.SYSTABAUTH
    WHERE GRANTEE = '<USER_ID>'
      AND GRANTEETYPE = ' ';
    
    -- Verify system catalog access
    SELECT *
    FROM SYSIBM.SYSTABAUTH
    WHERE GRANTEE = '<USER_ID>'
      AND TCREATOR = 'SYSIBM';

Berechtigungsvorlagen nach Anwendungsfall

Dieser Abschnitt enthält Beispielanweisungen zur Autorisierung für gängige Berechtigungsszenarien.
  • Vorlage 1: Lesezugriff
    -- Application tables
    GRANT SELECT ON <SCHEMA>.<TABLE_NAME> TO <USER_ID>;
    
    -- System catalog tables (required for discovery)
    GRANT SELECT ON SYSIBM.SYSTABLES   TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSTABAUTH  TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSCOLUMNS  TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSINDEXES  TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSKEYS     TO <USER_ID>;
    ``
  • Vorlage 2: Vollständiger Zugriff zum Erstellen, Abrufen, Aktualisieren und Löschen
    -- Application tables
    GRANT SELECT, INSERT, UPDATE, DELETE
      ON <SCHEMA>.<TABLE_NAME>
      TO <USER_ID>;
    
    -- System catalog tables (required for discovery)
    GRANT SELECT ON SYSIBM.SYSTABLES        TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSTABAUTH       TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSCOLUMNS       TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSINDEXES       TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSKEYS          TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSFOREIGNKEYS   TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSRELS          TO <USER_ID>;
    GRANT SELECT ON SYSIBM.SYSKEYCOLUSE     TO <USER_ID>;
    ``
  • Vorlage 3: Berechtigungen auf Schemaebene
    -- Grant permissions on all tables in a schema
    GRANT SELECT
      ON SCHEMA <SCHEMA_NAME>.*
      TO <USER_ID>;
    
    GRANT INSERT
      ON SCHEMA <SCHEMA_NAME>.*
      TO <USER_ID>;
    
    GRANT UPDATE
      ON SCHEMA <SCHEMA_NAME>.*
      TO <USER_ID>;
    
    GRANT DELETE
      ON SCHEMA <SCHEMA_NAME>.*
      TO <USER_ID>;
    ``

Fehlerbehebung

In diesem Abschnitt werden häufige Probleme und deren Lösungen im Zusammenhang mit dem Zugriff auf Tabellen und der Ermittlung von Metadaten in „ Db2 for z/OS “ beschrieben.

  • Thema:“Table not found”Fehler

    Lösung: Überprüfen Sie, ob der Benutzer über SELECT die entsprechenden Berechtigungen für die angegebene Tabelle verfügt und ob der Schemaname korrekt ist.

  • Thema:"Discovery returns no tables:

    Lösung: Überprüfen Sie, ob der Benutzer über SELECT die Berechtigung für SYSIBM.SYSTABLES und SYSIBM.SYSTABAUTHverfügt.

  • Thema:"Column metadata not available":

    Lösung: Erteilen Sie SELECT die Berechtigung für SYSIBM.SYSCOLUMNS.

  • Thema:"Primary key information missing"

    Lösung: Erteilen Sie SELECT die Berechtigung für SYSIBM.SYSINDEXES und SYSIBM.SYSKEYS.