PG_GET_IAM_ROLE_BY_USER - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

PG_GET_IAM_ROLE_BY_USER

Gibt alle IAM-Rollen und Befehlsberechtigungen zurück, die einem Benutzer gewährt wurden.

Syntax

pg_get_iam_role_by_user('name')

Argumente

Name

Der Name des Benutzers, für den IAM-Rollen zurückgegeben werden sollen.

Rückgabetyp

VARCHAR

Nutzungshinweise

Die Funktion PG_GET_IAM_ROLE_BY_USER gibt eine Zeile für jede Gruppe von Rollen und Befehlsberechtigungen zurück. Die Zeile enthält eine durch Kommas getrennte Liste mit dem Benutzernamen, der IAM-Rolle und dem Befehl.

Ein default-Wert im Ergebnis zeigt an, dass der Benutzer eine beliebige verfügbare Rolle angeben kann, um den angezeigten Befehl auszuführen.

Sie müssen Superuser sein, um diese Funktion zu verwenden.

Beispiel

Das folgende Beispiel zeigt, dass der Benutzer reg_user1 jede verfügbare IAM-Rolle angeben kann, um COPY-Vorgänge durchzuführen. Der Benutzer kann außerdem die Redshift-S3-Write-Rolle für die UNLOAD-Vorgänge angeben.

select pg_get_iam_role_by_user('reg_user1');
pg_get_iam_role_by_user --------------------------------------------------------------------------------- (reg_user1,default,COPY) (reg_user1,arn:aws:iam::123456789012:role/Redshift-S3-Write,COPY|UNLOAD)

Im folgenden Beispiel einer PG_GET_IAM_ROLE_BY_USER-Funktion wird das Ergebnis als Tabelle formatiert.

select username, iam_role, cmd FROM pg_get_iam_role_by_user('reg_user1') res_iam_role(username text, iam_role text, cmd text);
username | iam_role | cmd -----------+-------------------------------------------------+------ reg_user1 | default | None reg_user1 | arn:aws:iam::123456789012:role/Redshift-S3-Read | COPY