CREATE USER

Erstellt einen neuen Benutzer oder ersetzt einen bestehenden Benutzer im System. Weitere Details dazu finden Sie unter Benutzerverwaltung.

Bemerkung

Nur Benutzeradministratoren (d. h. Benutzer mit der Rolle USERADMIN oder höher) oder eine andere Rolle mit der Berechtigung CREATE USER für das Konto können Benutzer erstellen.

Siehe auch:

DROP USER, ALTER USER, DESCRIBE USER, SHOW PARAMETERS

Syntax

CREATE [ OR REPLACE ] USER [ IF NOT EXISTS ] <name>
  [ objectProperties ]
  [ objectParams ]
  [ sessionParams ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
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>
  RSA_PUBLIC_KEY = <string>
  RSA_PUBLIC_KEY_FP = <string>
  RSA_PUBLIC_KEY_2 = <string>
  RSA_PUBLIC_KEY_2_FP = <string>
  COMMENT = '<string_literal>'
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>
  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.

Erforderliche Parameter

name

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

Der Bezeichner muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Bemerkung

Der Benutzer verwendet für die Anmeldung bei Snowflake nicht diesen Wert, sondern den für die Eigenschaft LOGIN_NAME angegebenen Wert. Wenn für den Benutzer jedoch kein Anmeldename explizit angegeben ist, dient der Benutzername bzw. der Bezeichner als Standardanmeldename.

Optionale Objekteigenschaften (objectProperties)

PASSWORD = 'string'

Das Kennwort des Benutzers muss in einfache oder doppelte Anführungszeichen gesetzt sein. Wenn kein Kennwort angegeben ist, kann sich der Benutzer erst bei Snowflake anmelden, wenn ein Kennwort explizit für ihn angegeben wurde.

Wenn das Kennwort das Backslash-Zeichen (d. h. \) verwendet, maskieren Sie das Zeichen mit einem weiteren Backslash, oder verwenden Sie doppelte Dollarzeichen (d. h. $$) als Trennzeichen, wenn Sie das Kennwort in einem SQL-Befehl angeben. Weitere Informationen dazu finden Sie unter Zeichenfolgen- und Binärdatentypen.

Weitere Informationen zu Kennwörtern in Snowflake finden Sie unter Kennwortrichtlinien.

Standard: NULL

LOGIN_NAME = string

Name, den der Benutzer eingibt, um sich beim System anzumelden. Die Anmeldenamen für Benutzer müssen in Ihrem gesamten Konto eindeutig sein.

Ein Anmeldename kann eine beliebige Zeichenfolge sein, einschließlich Leerzeichen und nicht-alphanumerische Zeichen, wie Ausrufezeichen (!), Prozentzeichen (%) und Sternchen (*); wenn die Zeichenfolge jedoch Leerzeichen oder nicht-alphanumerische Zeichen enthält, muss sie in einfache oder doppelte Anführungszeichen eingeschlossen werden. Bei den Anmeldenamen wird nie zwischen Groß- und Kleinschreibung unterschieden.

Snowflake ermöglicht die Angabe verschiedener Benutzer- und Anmeldenamen, um die Verwendung gemeinsamer Bezeichner (z. B. E-Mail-Adressen) für die Anmeldung zu ermöglichen.

Standard: Name/ID des Benutzers (d. h. wenn kein Wert angegeben ist, wird der für name angegebene Wert als Anmeldename verwendet).

DISPLAY_NAME = string

Name, der für den Benutzer auf der Snowflake-Weboberfläche angezeigt wird.

Standard: Name/ID des Benutzers (d. h. wenn kein Wert angegeben ist, wird der für name angegebene Wert als Anzeigename verwendet).

FIRST_NAME = string, . MIDDLE_NAME = string, . LAST_NAME = string

Vor-, Mittel- und Nachname des Benutzers.

Standard: NULL

EMAIL = string

E-Mail-Adresse des Benutzers.

Eine E-Mail-Adresse ist für die Nutzung von Snowflake nicht erforderlich. Um jedoch auf die Snowflake-Community zugreifen zu können, Support-Tickets zu öffnen oder einen Beitrag in den Community-Foren zu schreiben, muss eine gültige E-Mail-Adresse für den Benutzer angegeben werden.

Wir empfehlen die Angabe einer geschäftlichen E-Mail-Adresse anstelle einer privaten E-Mail-Adresse. Die E-Mail-Adressen der Benutzer sind für alle anderen Benutzer im Snowflake-Konto sichtbar.

Standard: NULL

MUST_CHANGE_PASSWORD = TRUE | FALSE

Gibt an, ob der Benutzer gezwungen ist, sein Kennwort bei der nächsten Anmeldung (einschließlich der ersten Anmeldung) beim System zu ändern.

Standard: FALSE

DISABLED = TRUE | FALSE

Gibt an, ob der Benutzer deaktiviert ist, was die folgenden Aktionen verhindert:

  • Für einen neuen Benutzer bedeutet dies, dass er von Snowflake ausgesperrt ist und sich nicht anmelden kann.

  • Bei einem bestehenden Benutzer werden durch das Festlegen der Eigenschaft alle seine aktuell aktiven Abfragen abgebrochen. Dem Benutzer ist es nicht erlaubt, neue Abfragen auszuführen. Außerdem wird der Benutzer sofort durch Snowflake gesperrt und kann sich nicht wieder anmelden.

Standard: FALSE

DAYS_TO_EXPIRY = integer

Gibt die Anzahl der Tage an, nach denen der Benutzerstatus auf „Abgelaufen“ gesetzt wird und der Benutzer sich nicht mehr anmelden darf. Dies ist nützlich für die Definition temporärer Benutzer (d. h. Benutzer, die nur für einen begrenzten Zeitraum Zugriff auf Snowflake haben sollten). Im Allgemeinen sollten Sie diese Eigenschaft für Kontoadministratoren (d. h. Benutzer mit der Rolle ACCOUNTADMIN) nicht festlegen, da Snowflake diese sperrt, wenn sie „Abgelaufen“ sind.

Einmal eingestellt, zählt der Wert bis 0 herunter, hört aber nicht auf. Ein negativer Wert zeigt an, dass der Status für den Benutzer „abgelaufen“ ist. Um den Wert zurückzusetzen, verwenden Sie ALTER USER, um die folgenden Werte einzustellen:

  • Um den Benutzer wieder als temporären Benutzer zu aktivieren, setzen Sie den Wert auf einen Wert größer als 0.

  • Um den Benutzer als permanenten Benutzer anzugeben, setzen Sie den Wert auf NULL oder 0.

Standard: NULL

MINS_TO_UNLOCK = integer

Gibt die Anzahl der Minuten an, bis die temporäre Sperre für die Benutzeranmeldung aufgehoben wird. Zum Schutz vor unbefugter Benutzeranmeldung setzt Snowflake nach fünf aufeinanderfolgenden erfolglosen Anmeldeversuchen eine temporäre Sperre auf einen Benutzer:

  • Ein positiver Wert zeigt an, dass der Status für den Benutzer „Gesperrt“ ist.

  • Sobald der Wert auf 0 (oder einen negativen Wert) heruntergezählt ist, wird die Sperre aufgehoben und der Benutzer kann sich erneut anmelden.

  • Wenn sich der Benutzer erfolgreich bei Snowflake anmeldet, wird der Wert zurückgesetzt auf NULL.

Beim Erstellen eines Benutzers kann diese Eigenschaft so eingestellt werden, dass sich der Benutzer erst nach Ablauf der angegebenen Zeit anmelden kann.

Um eine Sperre für einen Benutzer sofort aufzuheben, verwenden Sie ALTER USER, und geben Sie für diesen Parameter einen Wert von 0 an.

Standard: NULL

DEFAULT_WAREHOUSE = string

Gibt das virtuelle Warehouse an, das bei der Anmeldung standardmäßig für die Sitzung des Benutzers aktiv ist.

Ein Benutzer kann sein aktuelles virtuelles Standard-Warehouse mit ALTER USER angeben oder ändern. Darüber hinaus kann ein Benutzer nach dem Starten einer Sitzung (d. h. dem Anmelden) mit USE WAREHOUSE das virtuelle Warehouse für die Sitzung ändern.

Beachten Sie, dass die Operation CREATE USER nicht überprüft, ob das Warehouse existiert.

Standard: NULL

DEFAULT_NAMESPACE = string

Gibt den Namespace (nur Datenbank oder Datenbank und Schema) an, der bei der Anmeldung standardmäßig für die Sitzung des Benutzers aktiv ist:

  • Um nur eine Datenbank anzugeben, geben Sie den Datenbanknamen ein.

  • Um ein Schema anzugeben, geben Sie den vollqualifizierten Schemanamen in Form von db_name.schema_name ein.

Ein Benutzer kann seinen aktuellen Standard-Namespace mit ALTER USER angeben oder ändern. Darüber hinaus kann ein Benutzer nach dem Starten einer Sitzung (d. h. dem Anmelden) den Namespace für seine Sitzung mit USE DATABASE oder USE SCHEMA ändern.

Beachten Sie, dass die Operation CREATE USER nicht überprüft, ob der Namespace existiert.

Standard: NULL

DEFAULT_ROLE = string

Gibt die Primärrolle an, die bei der Anmeldung standardmäßig für die Sitzung des Benutzers aktiv ist. Die Primärrolle ist eine Einzelrolle, die die Ausführung von CREATE <Objekt>-Anweisungen oder jeder anderen SQL-Aktion autorisiert. Die Berechtigungen zur Durchführung dieser Aktionen können der Primärrolle oder jeder niedrigeren Rolle in der Rollenhierarchie erteilt werden.

Beachten Sie, dass die Angabe einer Standardrolle für einen Benutzer nicht dazu führt, dass dem Benutzer die Rolle zugewiesen wird. Die Rolle muss dem Benutzer explizit mit dem Befehl GRANT ROLE zugewiesen werden. Außerdem wird mit der Operation CREATE USER nicht überprüft, ob die Rolle existiert.

Ein Benutzer kann seine aktuelle Standardrolle mithilfe von ALTER USER angeben oder ändern. Darüber hinaus kann ein Benutzer nach dem Starten einer Sitzung (d. h. dem Anmelden) die Rolle für die Sitzung ändern, indem er USE ROLE verwendet. In beiden Fällen können sie nur Rollen wählen, die ihnen explizit zugewiesen wurden.

Standard: NULL

DEFAULT_SECONDARY_ROLES = ( 'ALL' )

Gibt die Menge der Sekundärrollen an, die bei der Anmeldung für die Sitzung des Benutzers aktiv sind. Sekundärrollen sind eine Menge von Rollen, die jede SQL-Aktion außer der Ausführung von CREATE <Objekt>-Anweisungen autorisieren. Die Berechtigungen zur Durchführung dieser Aktionen können der Primärrolle, den Sekundärrollen oder allen niedrigeren Rollen in den Rollenhierarchien erteilt werden.

Beachten Sie, dass die Angabe einer Standard-Sekundärrolle für einen Benutzer nicht dazu führt, dass dem Benutzer die Rolle zugewiesen wird. Die Rolle muss auch dem Benutzer explizit über den Befehl GRANT ROLE zugewiesen werden.

Die folgenden Werte werden unterstützt:

ALL:

Alle Rollen, die dem Benutzer zugewiesen wurden.

Beachten Sie, dass die Menge der Rollen bei der Ausführung jeder SQL-Anweisung neu ausgewertet wird. Wenn dem Benutzer zusätzliche Rollen zugewiesen werden und dieser Benutzer eine neue SQL-Anweisung ausführt, sind die neu zugewiesenen Rollen aktive Sekundärrollen für die neue SQL-Anweisung. Die gleiche Logik gilt für Rollen, die einem Benutzer entzogen werden.

Standard: NULL

MINS_TO_BYPASS_MFA = integer

Gibt die Anzahl der Minuten an, die der Benutzer MFA vorübergehend umgehen kann.

Diese Eigenschaft kann verwendet werden, um einem MFA-registrierten Benutzer zu ermöglichen, MFA während der Anmeldung vorübergehend zu umgehen, falls sein MFA-Gerät nicht verfügbar ist.

RSA_PUBLIC_KEY = string

Gibt den öffentlichen RSA-Schlüssel des Benutzers an, der für die Schlüsselpaar-Authentifizierung verwendet wird.

RSA_PUBLIC_KEY_FP = string

Gibt den Fingerabdruck des öffentlichen RSA-Schlüssels des Benutzers an, der für die Schlüsselpaar-Authentifizierung verwendet wird.

RSA_PUBLIC_KEY_2 = string

Gibt den zweiten öffentlichen RSA-Schlüssel des Benutzers an. Dieser wird verwendet, um den öffentlichen und privaten Schlüssel für die Schlüsselpaar-Authentifizierung basierend auf einem von Ihrer Organisation festgelegten Verfallszeitplan zu rotieren.

RSA_PUBLIC_KEY_2_FP = string

Gibt den Fingerabdruck des zweiten öffentlichen RSA-Schlüssels des Benutzers an. Dieser wird verwendet, um die öffentlichen und privaten Schlüssel für die Schlüsselpaar-Authentifizierung basierend auf einem von Ihrer Organisation festgelegten Verfallszeitplan zu rotieren.

COMMENT = 'string_literal'

Gibt einen Kommentar für den Benutzer an.

Standard: NULL

Optionale Objektparameter (objectParams)

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 an, dass eine vorhandene Netzwerkrichtlinie für den Benutzer aktiv ist. Die Netzwerkrichtlinie schränkt die Liste der Benutzer-IP-Adressen ein, wenn ein Autorisierungscode gegen ein Zugriffs- oder Aktualisierungstoken ausgetauscht und ein Aktualisierungstoken zum Abrufen eines neuen Zugriffstokens verwendet wird.

Wenn dieser Parameter nicht festgelegt ist, wird stattdessen die Netzwerkrichtlinie für das Konto (wenn vorhanden) verwendet.

Optionale Sitzungsparameter (sessionParams)

Gibt einen (oder mehrere) Sitzungsparameter an, die für den Benutzer voreingestellt sind (getrennt durch Leerzeichen, Kommas oder Neu-Zeile-Zeichen). Diese Standardeinstellungen werden jedes Mal gesetzt, wenn sich der Benutzer bei Snowflake anmeldet und eine Sitzung startet. Der Benutzer kann diese Standardeinstellungen innerhalb der Sitzung immer selbst mit ALTER SESSION ändern.

Die vollständige Liste der Sitzungsparameter einschließlich ihrer Standardwerte, die für einen Benutzer angegeben werden können, finden Sie unter Parameter.

Optionale Parameter

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.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE USER

Konto

Only the USERADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einem bestimmten Satz von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • 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.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

Beispiele

Erstellen Sie einen Benutzer mit allen Standardeigenschaften, einer Standardrolle und einem Basiskennwort, das vom Benutzer nach der ersten Anmeldung geändert werden muss:

CREATE USER user1 PASSWORD='abc123' DEFAULT_ROLE = myrole DEFAULT_SECONDARY_ROLES = ('ALL') MUST_CHANGE_PASSWORD = TRUE;
Copy