Berechtigungs-IDs in verschiedenen Kontexten

Eine Berechtigungs-ID dient zwei Zwecken: Identifikation und Berechtigungsprüfung. Zum Beispiel wird die Sitzungsberechtigungs-ID für die einleitende Berechtigungsprüfung verwendet.

Wenn auf die Verwendung einer Berechtigungs-ID in einem bestimmten Kontext Bezug genommen wird, ist der Verweis auf die Berechtigung dazu geeignet, den Kontext zu identifizieren, wie im folgenden Abschnitt gezeigt.

Kontextbezogener Verweis auf die Berechtigungs-ID
Definition
Systemberechtigungs-ID
Die Berechtigungs-ID, die für jede einleitende Berechtigungsprüfung verwendet wird, zum Beispiel zum Überprüfen des Zugriffsrechts CONNECT bei der CONNECT-Verarbeitung. Im Rahmen des Authentifizierungsprozesses während der CONNECT-Verarbeitung wird eine mit den Db2® -Namensanforderungen kompatible Berechtigungs-ID erstellt, die die externe Benutzer-ID im Db2 -Datenbanksystem darstellt. Die Systemberechtigungs-ID stellt den Benutzer dar, der die Verbindung hergestellt hat. Mithilfe des Sonderregisters SYSTEM_USER können Sie den aktuellen Wert der Systemberechtigungs-ID ermitteln. Die Systemberechtigungs-ID kann für eine Verbindung nicht geändert werden.
Sitzungsberechtigungs-ID
Die Berechtigungs-ID, die für jede Sitzungsberechtigungsprüfung nach den einleitenden Überprüfungen der CONNECT-Verarbeitung verwendet wird. Der Standardwert der Sitzungsberechtigungs-ID ist der Wert der Systemberechtigungs-ID. Mithilfe des Sonderregisters SESSION_USER können Sie den aktuellen Wert der Sitzungsberechtigungs-ID feststellen. Das Sonderregister USER ist ein Synonym für das Sonderregister SESSION_USER. Die Sitzungsberechtigungs-ID kann mithilfe der Anweisung SET SESSION AUTHORIZATION geändert werden.
Paketberechtigungs-ID
Die Berechtigungs-ID, die zum Binden (BIND) eines Pakets an die Datenbank verwendet wird. Die Berechtigungs-ID ergibt sich aus dem Wert für die Option OWNER berechtigungs-id des Befehls BIND. Die Paketberechtigungs-ID wird manchmal als Paketbinder oder Paketeigner bezeichnet.
Routineneignerberechtigungs-ID
Die Berechtigungs-ID, die in den Systemkatalogen als Eigner der SQL-Routine eingetragen ist, die aufgerufen wurde.
Routinenaufruferberechtigungs-ID
Die Berechtigungs-ID, die die Anweisungsberechtigungs-ID für die Anweisung ist, die eine SQL-Routine aufgerufen hat.
Anweisungsberechtigungs-ID
Die Berechtigungs-ID, die einer bestimmten SQL-Anweisung zugeordnet ist und die für alle Berechtigungsanforderungen sowie zur Bestimmung des Objekteigentumsrechts (sofern zutreffend) zu verwenden ist. Ihr Wert leitet sich abhängig vom Typ der SQL-Anweisung aus der entsprechenden Quellenberechtigungs-ID ab:
  • Statisches SQL

    Die Paketberechtigungs-ID wird verwendet.

  • Dynamisches SQL (aus Nichtroutinenkontext)
    Die Tabelle zeigt, welche Berechtigungs-ID in den einzelnen Fällen verwendet wird:
    Wert der Option DYNAMICRULES zum Ausführen des Pakets Verwendete Berechtigungs-ID
    Ausführen Sitzungsberechtigungs-ID
    BIND Paketberechtigungs-ID
    DEFINERUN, INVOKERUN Sitzungsberechtigungs-ID
    DEFINEBIND, INVOKEBIND Paketberechtigungs-ID
  • Dynamisches SQL (aus Routinenkontext)
    Die Tabelle zeigt, welche Berechtigungs-ID in den einzelnen Fällen verwendet wird:
    Wert der Option DYNAMICRULES zum Ausführen des Pakets Verwendete Berechtigungs-ID
    DEFINERUN, DEFINEBIND Routineneignerberechtigungs-ID
    INVOKERUN, INVOKEBIND Routinenaufruferberechtigungs-ID
Mithilfe des Sonderregisters CURRENT_USER können Sie den aktuellen Wert der Anweisungsberechtigungs-ID ermitteln. Die Anweisungsberechtigungs-ID kann nicht direkt geändert werden. Sie wird vom DB2-Datenbanksystem abhängig vom Typ der jeweiligen SQL-Anweisung automatisch geändert.