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 Sicherheits- und Kontoadministratoren (Benutzer mit der Rolle SECURITYADMIN oder ACCOUNTADMIN) 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'

Kennwort des Benutzers (muss in einfache oder doppelte Anführungszeichen gesetzt werden). Wenn kein Kennwort angegeben ist, kann sich der Benutzer nicht bei Snowflake anmelden, bis ein Kennwort explizit für ihn angegeben wurde.

Ein Kennwort kann eine beliebige Zeichenfolge von bis zu 256 Zeichen unter Beachtung der Groß-/Kleinschreibung und einschließlich Leerzeichen und Sonderzeichen (d. h. nicht alphanumerische Zeichen) wie Ausrufezeichen (!), Prozentzeichen (%) und Sternchen (*) sein.

Beim Erstellen eines Benutzers, dem Einstellen eines neuen/Initialkennworts für einen Benutzer oder beim Rücksetzen eines bestehenden Kennworts für einen Benutzer erzwingt Snowflake folgende Kennwortrichtlinie:

  • Muss mindestens 8 Zeichen lang sein.

  • Muss mindestens 1 Ziffer enthalten.

  • Muss mindestens 1 Großbuchstaben und 1 Kleinbuchstaben enthalten.

Diese Richtlinie deckt jedoch nur die minimalen Anforderungen an Benutzerkennwörter ab. Snowflake empfiehlt dringend die Einhaltung der folgenden Richtlinien, um möglichst starke Kennwörter zu erstellen:

  • Erstellen Sie ein Kennwort nur für Snowflake (d. h. verwenden Sie nie dieselben Kennwörter auch bei anderen Systemen oder Konten).

  • Verwenden Sie mehr als 8 Zeichen.

  • Verwenden Sie verschiedene, zufällig angeordnete Groß- und Kleinbuchstaben, Ziffern und Sonderzeichen einschließlich Leerzeichen.

  • Verwenden Sie niemals einfach zu erratende, gängige Kennwörter, Namen, Zahlen oder Datumsangaben.

Um das höchste Sicherheitsniveau für die Benutzeranmeldung zu konfigurieren, sollten sich Benutzer außerdem bei MFA anmelden.

Beachten Sie, dass Snowflake diese Richtlinie nicht durchsetzt, wenn für einen Benutzer mit diesem Befehl oder dem Befehl ALTER USER zunächst ein Kennwort festgelegt wird. Dies gibt Sicherheitsadministratoren die Möglichkeit zu entscheiden, ob Benutzern eher weniger sichere, allgemeine Kennwörter oder strengere, spezifischere Kennwörter zugewiesen werden. Wenn allgemeine Anfangskennwörter verwendet werden, sollten Sie unbedingt die Eigenschaft MUST_CHANGE_PASSWORD auf TRUE setzen, damit die Benutzer bei der nächsten Anmeldung bei Snowflake (einschließlich Erstanmeldung) zur Änderungen des Kennworts gezwungen werden.

Darüber hinaus ermöglicht Snowflake das Anlegen von Benutzern ohne Anfangskennwort, um Geschäftsprozesse zu unterstützen, bei denen sich neue Benutzer nicht beim System anmelden dürfen. Snowflake erwartet jedoch in der Regel, dass Benutzer mit Initialkennwörtern angelegt werden. Tatsächlich erlaubt die Snowflake-Weboberfläche nicht, dass Benutzer ohne Kennwort erstellt werden.

Eine leere Zeichenfolge ('') oder NULL gibt an, dass der Benutzer kein Kennwort hat.

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.

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.

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 auch dem Benutzer explizit über den Befehl GRANT ROLE zugewiesen werden.

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;