EXECUTE AS

Verwenden Sie den EXECUTE AS-Befehl, um den aktuellen Benutzer (CURRENT USER) der Sitzung festzulegen.

Übersicht

Syntax für das Festlegen des aktuellen Benutzers:
EXECUTE AS <target-user-name>

Eingaben

Der EXECUTE AS-Befehl hat die folgende Eingabe:
Tabelle 1. EXECUTE AS-Eingabe
Eingabe Beschreibung
<Zielbenutzername> Der Name eines vorhandenen Benutzers.

Ausgaben

Der EXECUTE AS-Befehl hat die folgende Ausgaben:
Tabelle 2. Ausgaben von EXECUTE AS
Ausgabe Beschreibung
EXECUTE AS Die Nachricht, die das System zurückgibt, wenn der Befehl erfolgreich ist.
ERROR: permission denied. Sie müssen über die EXECUTE AS-Berechtigung für den Zielbenutzer verfügen.

Beschreibung

Diese Anweisung ermöglicht es einem entsprechend privilegierten Benutzer, den CURRENT USER der Sitzung auf einen anderen Benutzer zu setzen. Nach dem erfolgreichen Abschluss dieser Anweisung ist CURRENT USER der in der Syntax angegebene Zielbenutzer. Sicherheitsprüfungen basieren auf dem Sicherheitsprofil von CURRENT USER.

Die current_user-Funktion gibt den Zielbenutzer zurück. Die session_user-Funktion gibt den ursprünglichen Sitzungsbenutzer zurück.

EXECUTE AS arbeitet außerhalb des Transaktionsbereichs, genau wie SET-Anweisungen. Die Ausführung von EXECUTE AS in einer expliziten Transaktion ist zulässig. Das Rollback für die Transaktion wirkt sich nicht auf die EXECUTE AS-Einstellung aus. Beispiel: Sie führen als jdoe die folgenden Schritte aus:
BEGIN;
EXECUTE AS dd;
ROLLBACK;
SELECT current_user;
CURRENT_USER 
--------------
DD
(1 row)
Zugriffsrechte erforderlich
Sie müssen über die EXECUTE AS-Berechtigung für den Zielbenutzer verfügen.
Allgemeine Aufgaben
Verwenden Sie den EXECUTE AS-Befehl, um den aktuellen Benutzer (CURRENT USER) der Sitzung festzulegen.

Verwendung

Es folgen Verwendungsbeispiele:
EXECUTE AS BOB;