Kategorien:

DDL für Benutzer und Sicherheit (Benutzer)

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:

ALTER USER, DESCRIBE USER, SHOW PARAMETERS

Syntax

CREATE [ OR REPLACE ] USER [ IF NOT EXISTS ] <name>
  [ objectProperties ]
  [ objectParams ]
  [ sessionParams ]

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
  SNOWFLAKE_SUPPORT = TRUE | FALSE
  DAYS_TO_EXPIRY = <integer>
  MINS_TO_UNLOCK = <integer>
  DEFAULT_WAREHOUSE = <string>
  DEFAULT_NAMESPACE = <string>
  DEFAULT_ROLE = <string>
  MINS_TO_BYPASS_MFA = <integer>
  RSA_PUBLIC_KEY = <string>
  RSA_PUBLIC_KEY_2 = <string>
  COMMENT = '<string_literal>'
objectParams ::=
  NETWORK_POLICY = <string>
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>

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 = 'Zeichenfolge'

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.

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

Standard: NULL

LOGIN_NAME = Zeichenfolge

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/Bezeichner des Benutzers (d. h. wenn kein Wert angegeben ist, wird der für Name angegebene Wert als Anmeldename verwendet).

DISPLAY_NAME = Zeichenfolge

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

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

FIRST_NAME = Zeichenfolge, . MIDDLE_NAME = Zeichenfolge, . LAST_NAME = Zeichenfolge

Vor-, Mittel- und Nachname des Benutzers.

Standard: NULL

EMAIL = Zeichenfolge

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 zu den Community-Foren zu schreiben, muss eine gültige E-Mail-Adresse für den Benutzer angegeben werden.

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

SNOWFLAKE_SUPPORT = TRUE | FALSE

Gibt an, ob sich Snowflake als dieser Benutzer anmelden kann. Diese Eigenschaft kann verwendet werden, um einem Snowflake-Vertreter oder Support-Techniker Zugriff auf Ihr Konto zu gewähren, um Probleme zu untersuchen und zu beheben.

Standard: FALSE

DAYS_TO_EXPIRY = Ganzzahl

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

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 = Ganzzahl

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 = Zeichenfolge

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 = Zeichenfolge

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 Datenbankname.Schemaname an.

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 = Zeichenfolge

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

Beachten Sie, dass die Angabe einer Standardrolle für einen Benutzer nicht dem Benutzer die Rolle zuweist. 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

MINS_TO_BYPASS_MFA = Ganzzahl

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 = Zeichenfolge

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

RSA_PUBLIC_KEY_2 = Zeichenfolge

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 Ablaufzeitplan zu rotieren.

COMMENT = 'Zeichenfolgenliteral'

Gibt einen Kommentar für den Benutzer an.

Standard: NULL

Optionale Objektparameter (objectParams)

NETWORK_POLICY = Zeichenfolge

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.

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 MUST_CHANGE_PASSWORD = TRUE;