ALTER USER

Ändert die Eigenschaften und Objekt-/Sitzungsparameter für einen vorhandenen Benutzer im System:

  • Mit diesem Befehl können Administratoren Eigenschaften und Standardparameterwerte für alle Benutzer ändern, für die die Administratoren entsprechende Berechtigungen besitzen.

  • Mit diesem Befehl können einzelne Benutzer bestimmte Eigenschaften und die Standardeinstellungen für Sitzungsparameter für sich selbst ändern. Weitere Details dazu finden Sie unter Nutzungshinweise (unter diesem Thema).

Der Befehl kann auch verwendet werden, um alle vom Benutzer übermittelten Abfragen (und andere SQL-Anweisungen) abzubrechen.

Siehe auch:

CREATE USER, DROP USER, SHOW PARAMETERS, SHOW USERS, DESCRIBE USER

Syntax

ALTER USER [ IF EXISTS ] [ <name> ] RENAME TO <new_name>

ALTER USER [ IF EXISTS ] [ <name> ] RESET PASSWORD

ALTER USER [ IF EXISTS ] [ <name> ] ABORT ALL QUERIES

ALTER USER [ IF EXISTS ] [ <name> ] ADD DELEGATED AUTHORIZATION OF ROLE <role_name> TO SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] REMOVE DELEGATED { AUTHORIZATION OF ROLE <role_name> | AUTHORIZATIONS } FROM SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] SET { AUTHENTICATION | PASSWORD | SESSION } POLICY <policy_name>

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { AUTHENTICATION | PASSWORD | SESSION } POLICY

ALTER USER [ IF EXISTS ] [ <name> ] SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER USER [ IF EXISTS ] [ <name> ] UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER USER [ IF EXISTS ] [ <name> ] SET { [ objectProperties ] [ objectParams ] [ sessionParams ] }

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { <object_property_name> | <object_param_name> | <session_param_name> } [ , ... ]
Copy

Wobei:

objectProperties ::=
    PASSWORD = '<string>'
    LOGIN_NAME = <string>
    DISPLAY_NAME = <string>
    FIRST_NAME = <string>
    MIDDLE_NAME = <string>
    LAST_NAME = <string>
    EMAIL = <string>
    MUST_CHANGE_PASSWORD = TRUE | FALSE
    DISABLED = TRUE | FALSE
    DAYS_TO_EXPIRY = <integer>
    MINS_TO_UNLOCK = <integer>
    DEFAULT_WAREHOUSE = <string>
    DEFAULT_NAMESPACE = <string>
    DEFAULT_ROLE = <string>
    DEFAULT_SECONDARY_ROLES = ( 'ALL' )
    MINS_TO_BYPASS_MFA = <integer>
    DISABLE_MFA = TRUE | FALSE
    RSA_PUBLIC_KEY = <string>
    RSA_PUBLIC_KEY_FP = <string>
    RSA_PUBLIC_KEY_2 = <string>
    RSA_PUBLIC_KEY_2_FP = <string>
    COMMENT = '<string>'
Copy
objectParams ::=
    ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE
    NETWORK_POLICY = <string>
Copy
sessionParams ::=
    ABORT_DETACHED_QUERY = TRUE | FALSE
    AUTOCOMMIT = TRUE | FALSE
    BINARY_INPUT_FORMAT = <string>
    BINARY_OUTPUT_FORMAT = <string>
    DATE_INPUT_FORMAT = <string>
    DATE_OUTPUT_FORMAT = <string>
    ERROR_ON_NONDETERMINISTIC_MERGE = TRUE | FALSE
    ERROR_ON_NONDETERMINISTIC_UPDATE = TRUE | FALSE
    JSON_INDENT = <num>
    LOCK_TIMEOUT = <num>
    QUERY_TAG = <string>
    ROWS_PER_RESULTSET = <num>
    S3_STAGE_VPCE_DNS_NAME = <string>
    SEARCH_PATH = <string>
    SIMULATED_DATA_SHARING_CONSUMER = <string>
    STATEMENT_TIMEOUT_IN_SECONDS = <num>
    STRICT_JSON_OUTPUT = TRUE | FALSE
    TIMESTAMP_DAY_IS_ALWAYS_24H = TRUE | FALSE
    TIMESTAMP_INPUT_FORMAT = <string>
    TIMESTAMP_LTZ_OUTPUT_FORMAT = <string>
    TIMESTAMP_NTZ_OUTPUT_FORMAT = <string>
    TIMESTAMP_OUTPUT_FORMAT = <string>
    TIMESTAMP_TYPE_MAPPING = <string>
    TIMESTAMP_TZ_OUTPUT_FORMAT = <string>
    TIMEZONE = <string>
    TIME_INPUT_FORMAT = <string>
    TIME_OUTPUT_FORMAT = <string>
    TRANSACTION_DEFAULT_ISOLATION_LEVEL = <string>
    TWO_DIGIT_CENTURY_START = <num>
    UNSUPPORTED_DDL_ACTION = <string>
    USE_CACHED_RESULT = TRUE | FALSE
    WEEK_OF_YEAR_POLICY = <num>
    WEEK_START = <num>
Copy

Bemerkung

Aus Gründen der Lesbarkeit ist die vollständige Liste der Sitzungsparameter, die für einen Benutzer festgelegt werden können, hier nicht enthalten. Eine vollständige Liste aller Sitzungsparameter mit ihren Beschreibungen sowie Konto- und Objektparametern finden Sie unter Parameter.

Parameter

name

Gibt den Bezeichner für den zu ändernden Benutzer an. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Wird der Bezeichner weggelassen, ändert die Anweisung den aktiven (d. h. angemeldeten) Benutzer. Es gelten die unter Nutzungshinweise (unter diesem Thema) beschriebenen Einschränkungen.

RENAME TO new_name

Gibt den neuen Bezeichner für den Benutzer an. Dieser muss für Ihr Konto eindeutig sein.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

RESET PASSWORD

Generiert eine URL, die Sie für den Benutzer freigeben können und die eine Webseite öffnet, über die der Benutzer ein neues Kennwort eingeben kann. Die generierte URL ist für eine einmalige Verwendung gültig und läuft nach 4 Stunden ab.

Die Angabe dieses Parameters führt nicht dazu, dass das aktuelle Kennwort des Benutzers ungültig wird. Der Benutzer kann sein aktuelles Kennwort so lange weiterverwenden, bis er es über die URL zurückgesetzt hat.

Wenn Sie das aktuelle Kennwort ungültig machen möchten, verwenden Sie stattdessen SET PASSWORD = 'string', wodurch das Kennwort in einen neuen Wert geändert wird.

ABORT ALL QUERIES

Bricht alle Abfragen und andere SQL-Anweisungen ab, die derzeit vom Benutzer ausgeführt oder geplant werden, unabhängig davon, in welchem Warehouse die Abfragen ausgeführt oder geplant werden.

Beachten Sie, dass sich der Benutzer weiterhin bei Snowflake anmelden und neue Abfragen starten kann.

Wenn Sie alle aktiven/geplanten Abfragen abbrechen und verhindern möchten, dass sich der Benutzer bei Snowflake anmeldet oder neue Abfragen startet, geben Sie stattdessen SET DISABLED = TRUE an.

ADD DELEGATED AUTHORIZATION OF ROLE role_name TO SECURITY INTEGRATION integration_name;

Fügt die Benutzerzustimmung zum Initiieren einer Sitzung unter Verwendung einer angegebenen Rolle für eine bestimmte Integration hinzu.

Weitere Details dazu finden Sie unter Hinzufügen delegierter Berechtigungen für die OAuth-Benutzerzustimmung.

REMOVE DELEGATED AUTHORIZATION OF ROLE role_name FROM SECURITY INTEGRATION integration_name, . REMOVE DELEGATED AUTHORIZATIONS FROM SECURITY INTEGRATION integration_name

Widerruft die Einwilligung des Benutzers:

  • Die erste Syntax widerruft die Zustimmung zu einer bestimmten Sicherheitsintegration für eine bestimmte Rolle. Dies hat zur Folge, dass alle mit der Integration und spezifischen Rolle verbundenen OAuth-Zugriffstoken gesperrt werden.

  • Die zweite Syntax widerruft jede Zustimmung zu einer bestimmten Sicherheitsintegration. Dies hat zur Folge, dass alle mit der Integration verbundenen OAuth-Zugriffstoken gesperrt werden.

Weitere Details dazu finden Sie unter:

{ AUTHENTICATION | PASSWORD | SESSION } POLICY policy_name

Gibt eine der folgenden Richtlinien für den Benutzer an:

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.

Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.

Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.

Objekteigenschaften (objectProperties)

SET property_name = property_value [ ... ], . UNSET property_name [ , ... ]

Gibt eine oder mehrere Objekteigenschaften an, die für die Verwendung festgelegt oder deaktiviert werden sollen. Durch Deaktivieren einer Objekteigenschaft wird diese auf den Standardwert zurückgesetzt.

Weitere Informationen zu den Objekteigenschaften, die Sie festlegen können (z. B. PASSWORD, LOGIN_NAME, DEFAULT_ROLE), finden Sie unter CREATE USER.

Bemerkung

Die Objekteigenschaften EXT_AUTHN_DUO und EXT_AUTHN_UID können nicht geändert werden.

Um die mehrstufige Authentifizierung zu aktivieren bzw. zu deaktivieren, ändern Sie die Eigenschaft DISABLE_MFA des Benutzers. Nachdem ein Kontoadministrator den Befehl ALTER USER ausgeführt hat, um DISABLE_MFA auf TRUE zu setzen, wird der Wert der Eigenschaft EXT_AUTHN_DUO automatisch auf FALSE gesetzt.

Weitere allgemeine Informationen zum Aktivieren und Deaktivieren von Eigenschaften finden Sie unter Nutzungshinweise (unter diesem Thema).

Objektparameter (objectParams)

SET ...

Gibt einen (oder mehrere) Parameter an, die für den Benutzer festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder Neue-Zeile-Zeichen).

ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = { TRUE | FALSE }

Steuert, wie Abfragen, die aufgrund von Syntax- oder Parsing-Fehlern fehlschlagen, in einem Abfrageverlauf angezeigt werden. Bei FALSE wird der Inhalt einer fehlgeschlagenen Abfrage in den Ansichten, Seiten und Funktionen ausgeblendet, die einen Abfrageverlauf bereitstellen.

Dieser Parameter steuert das Verhalten für den Benutzer, der den Abfrageverlauf anzeigt, nicht für den Benutzer, der die Abfrage ausgeführt hat.

Nur Benutzer mit einer Rolle, der die Berechtigung AUDIT erteilt wurde oder die diese Berechtigung geerbt hat, können den Parameter ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR festlegen.

NETWORK_POLICY = string

Gibt die Netzwerkrichtlinie an, die für den Benutzer aktiviert ist.

Weitere allgemeine Informationen zum Festlegen und Deaktivieren von Parametern finden Sie unter Nutzungshinweise (unter diesem Thema).

UNSET ...

Gibt die Eigenschaften an, die für den Benutzer nicht gesetzt werden sollen, wodurch sie auf die Standardwerte zurückgesetzt werden.

  • NETWORK_POLICY

  • SESSION POLICY

  • TAG tag_name [ , tag_name ... ]

Sitzungsparameter (sessionParams)

SET session_param_name = param_value [ ... ], . UNSET session_param_name [ , ... ]

Gibt einen (oder mehrere) Sitzungsparameter an, die für den Benutzer festgelegt oder deaktiviert werden sollen. Durch Deaktivieren eines Sitzungsparameters wird dieser auf den Standardwert zurückgesetzt.

Weitere Informationen zu den Sitzungsparametern, die Sie festlegen können (ABORT_DETACHED_SESSION, AUTOCOMMIT usw.), finden Sie unter Parameter.

Weitere allgemeine Informationen zum Festlegen und Deaktivieren von Parametern finden Sie unter Nutzungshinweise (unter diesem Thema).

Nutzungshinweise

  • Nur die Rolle mit OWNERSHIP-Berechtigung für einen Benutzer oder eine höhere Rolle kann diesen Befehl ausführen, um die meisten Benutzereigenschaften zu ändern.

    Tipp

    Wenn Sie das Kennwort eines Benutzers mit SET PASSWORD = 'string' ändern, empfehlen wir auch die Angabe von MUST_CHANGE_PASSWORD = TRUE, um den Benutzer zu zwingen, sich bei der Weboberfläche anzumelden und das Kennwort zu ändern, bevor er sich über eine andere Schnittstelle bei Snowflake anmelden kann (z. B. SnowSQL oder eine andere Clientanwendung).

    Alternativ können Sie mit RESET PASSWORD eine URL zu einer Webseite generieren, auf die der Benutzer zugreifen kann, um sein Kennwort zu ändern.

  • Einzelne Benutzer können den Befehl ALTER USER selbst ausführen (d. h. indem sie Benutzername und -bezeichner im Befehl angeben) und Folgendes ändern:

    • DEFAULT_WAREHOUSE

    • DEFAULT_NAMESPACE

    • DEFAULT_ROLE

    • Beliebige Standardwerte ihrer Sitzungsparameter

    Beachten Sie, dass Benutzer nicht mit diesem Befehl ihr Kennwort ändern können. Aus Sicherheitsgründen erlaubt Snowflake Benutzern die Änderung ihrer Kennwörter nur über die Weboberfläche.

    Ein Administrator mit den entsprechenden Berechtigungen kann diesen Befehl jedoch mit SET PASSWORD = 'string' verwenden, um das Kennwort für einen Benutzer zu ändern.

    Tipp

    Wenn Sie das Kennwort eines Benutzers ändern, empfehlen wir auch die Angabe von MUST_CHANGE_PASSWORD = TRUE, um den Benutzer zu zwingen, sich bei der Weboberfläche anzumelden und sein Kennwort zu ändern, bevor er sich über eine andere Schnittstelle bei Snowflake anmelden kann (z. B. SnowSQL oder eine andere Clientanwendung).

    Alternativ können Sie mit RESET PASSWORD eine URL zu einer Webseite generieren, auf die der Benutzer zugreifen kann, um sein Kennwort zu ändern.

  • Eine ALTER USER-Anweisung verifiziert nicht, ob Standardobjekte (DEFAULT_WAREHOUSE, DEFAULT_NAMESPACE und DEFAULT_ROLE) vorhanden sind. Beachten Sie, dass DEFAULT_SECONDARY_ROLES keinen Objektnamen als Wert akzeptiert, aber eine ALTER USER-Anweisung prüft, ob ein unterstützter Wert angegeben ist.

  • Sie können mehrere Objekteigenschaften und Objekt-/Sitzungsparameter mit einer einzigen ALTER-Anweisung festlegen und deaktivieren:

    • Wenn Sie mehrere Eigenschaften/Parameter festlegen, trennen Sie diese durch Leerzeichen, Kommas oder Neue-Zeile-Zeichen.

    • Wenn Sie mehrere Eigenschaften/Parameter deaktivieren, müssen diese durch ein Komma getrennt werden. Wenn Sie eine Eigenschaft oder einen Parameter zurücksetzen, geben Sie nur den Namen an. Die Angabe eines Wertes für die Eigenschaft oder den Parameter gibt einen Fehler zurück.

  • Wenn Sie SET DISABLED = TRUE für einen Benutzer angeben:

    • Alle Abfragen und anderen SQL-Anweisungen, die derzeit ausgeführt oder vom Benutzer geplant werden, werden abgebrochen, und der Benutzer kann keine zusätzlichen Abfragen initiieren.

    • Der Benutzer ist in Snowflake gesperrt und kann sich nicht mehr anmelden.

    Wenn Sie nur die in Ausführung befindlichen und geplanten Abfragen/Anweisungen eines Benutzers abbrechen möchten, verwenden Sie stattdessen ABORT ALL QUERIES.

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

Beispiele

Benennen Sie user1 in user2 um:

ALTER USER user1 RENAME TO user2;
Copy

Legen Sie das Kennwort für einen Benutzer mit dem Namen user1 auf H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt fest, und verlangen Sie, dass der Benutzer sein Kennwort ändert, indem er sich bei der Snowflake-Weboberfläche anmeldet:

ALTER USER user1 SET PASSWORD = 'H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt' MUST_CHANGE_PASSWORD = TRUE;
Copy

Entfernen Sie einen bestehenden Kommentar von einem Benutzer:

ALTER USER user1 UNSET COMMENT;
Copy