Benutzerverwaltung

Benutzeradministratoren können Snowflake-Benutzer über SQL oder die Weboberfläche erstellen und verwalten:

  • Mit SQL können Administratoren alle auf den Benutzer bezogenen Aufgaben ausführen, einschließlich der Änderung der Anmeldeinformationen und der Standardeinstellungen für Benutzer.

  • Snowsight unterstützt die meisten benutzerbezogenen Aufgaben.

  • Die klassische Weboberfläche unterstützt nicht alle benutzerbezogenen Aufgaben, bietet aber einen praktischen Assistenten zum Erstellen von Benutzern und zum Ausführen der häufigsten Aktivitäten, z. B. zum Zurücksetzen des Kennworts eines Benutzers.

Benutzertypen

Einige Benutzerobjekte entsprechen menschlichen Benutzern, während andere Benutzerobjekte einem Dienst oder einer Anwendung entsprechen, die ohne menschliche Interaktion programmatisch mit Snowflake interagiert. Wenn Sie ein Benutzerobjekt erstellen, geben Sie den Typ des Benutzers an, um zwischen Menschen und Diensten zu unterscheiden. Diese Unterscheidung ist wichtig, da menschliche Benutzer für die mehrstufige Authentifizierung (MFA) registriert sein sollten, Dienste und Anwendungen jedoch nicht, da Menschen sekundäre Authentifizierungsmethoden nicht verwenden.

Die Eigenschaft TYPE eines Benutzerobjekts bestimmt den Typ des Benutzers. Mögliche Werte für diese TYPE-Eigenschaft sind:

PERSON:

Benutzer ist ein menschlicher Benutzer, der mit Snowflake interagieren kann.

NULL:

Funktioniert genauso wie PERSON.

SERVICE:

Benutzer ist ein Dienst oder eine Anwendung, die mit Snowflake ohne menschliche Interaktion interagiert.

Um die Sicherheit nicht-interaktiver Anwendungsfälle zu verbessern, haben Benutzer, bei denen die Eigenschaft TYPE auf SERVICE festgelegt ist, die folgenden Eigenschaften:

  • Sie können sich nicht mit einem Kennwort anmelden.

  • Sie können sich nicht über SAML SSO anmelden.

  • Sie können sich nicht in MFA registrieren.

  • Sie unterliegen nicht der Durchsetzung der Authentifizierungsrichtlinie für MFA.

  • Sie dürfen die folgenden Eigenschaften nicht haben:

    • FIRST_NAME

    • MIDDLE_NAME

    • LAST_NAME

    • PASSWORD

    • MUST_CHANGE_PASSWORD

    • MINS_TO_BYPASS_MFA

  • Die folgenden Befehle können nicht verwendet werden:

    • ALTER USER RESET PASSWORD

    • ALTER USER SET DISABLE_MFA = TRUE

SNOWFLAKE_SERVICE:

Benutzer, der von Snowflake für Snowpark Container Services erstellt wird. Administratoren können weder Benutzer des Typs SNOWFLAKE_SERVICE anlegen noch den Typ eines bestehenden Benutzers in SNOWFLAKE_SERVICE ändern. Weitere Informationen über SNOWFLAKE_SERVICE-Benutzer finden Sie unter Verbinden mit Snowflake aus einem Container heraus.

LEGACY_SERVICE:

Ein Benutzer, dessen Eigenschaft TYPE auf LEGACY_SERVICE festgelegt ist, stellt eine nicht-interaktive Integration dar. Dies ähnelt SERVICE, erlaubt aber die Authentifizierung mit Kennwort und SAML. In einem zukünftigen Release wird der LEGACY_SERVICE-Typ veraltet sein. Zu diesem Zeitpunkt werden alle nicht-interaktiven Anwendungsfälle den SERVICE-Typ mit einer sicheren Authentifizierungsmethode verwenden.

LEGACY_SERVICE-Benutzer haben die folgenden Eigenschaften:

  • Sie können sich im Gegensatz zu SERVICE-Benutzern mit Kennwort oder SAML-Authentifizierung anmelden.

  • Sie haben die Eigenschaften eines SERVICE-Benutzers, verfügen aber über die Eigenschaften PASSWORD und MUST_CHANGE_PASSWORD.

  • Sie haben die gleichen Befehlseinschränkungen wie ein Benutzer von SERVICE, können aber den Befehl ALTER USER RESET PASSWORD verwenden.

  • Sie sind nicht von der Durchsetzung der mehrstufigen Authentifizierung (MFA) betroffen. Mit dieser Eigenschaft können Administratoren Authentifizierungsrichtlinien auf Kontenebene einstellen, die MFA für die Authentifizierung mit Kennwörtern erfordern, ohne dass eine Authentifizierungsrichtlinie auf Benutzerebene festgelegt werden muss, um zu verhindern, dass LEGACY_SERVICE-Benutzer MFA für die Authentifizierung mit Kennwörtern benötigen.

Benutzerrollen

Snowflake verwendet Rollen, um zu steuern, auf welche Objekte (virtuelle Warehouses, Datenbanken, Tabellen usw.) die Benutzer zugreifen können:

  • Snowflake bietet eine Reihe vordefinierter Rollen sowie ein Framework zum Definieren einer Hierarchie von kundenspezifischen Rollen.

  • Allen Snowflake-Benutzern wird automatisch die vordefinierte Rolle PUBLIC zugewiesen, die die Anmeldung bei Snowflake und den Zugriff auf grundlegende Objekte ermöglicht.

  • Zusätzlich zu der Rolle PUBLIC kann jedem Benutzer eine zusätzliche Rolle zugewiesen werden, wobei eine dieser Rollen als Standardrolle bezeichnet wird. Die Standardrolle eines Benutzers bestimmt die Rolle, die in den vom Benutzer initiierten Snowflake-Sitzungen verwendet wird. Dies ist jedoch nur eine Standardeinstellung. Benutzer können jederzeit innerhalb einer Sitzung die Rollen wechseln.

  • Rollen können bei der Benutzererstellung oder danach zugewiesen werden.

Achtung

Berücksichtigen Sie beim Festlegen der zusätzlichen Rollen, die einem Benutzer zugewiesen werden sollen, sowie beim Festlegen der Standardrolle, die folgende Aspekte für die vordefinierte Rolle ACCOUNTADMIN (erforderlich für Verwaltungsaufgaben auf Kontoebene):

  • Snowflake empfiehlt, die Zuweisung von ACCOUNTADMIN streng zu kontrollieren, sie aber trotzdem mindestens zwei Benutzern zuzuweisen.

  • ACCOUNTADMIN sollte niemals als Standardrolle eines Benutzers festgelegt werden. Legen Sie stattdessen eine untergeordnete administrative oder kundenspezifische Rolle als Standardrolle fest.

Weitere Details und bewährte Methoden zur ACCOUNTADMIN-Rolle finden Sie unter Bewährte Praktiken der Zugriffssteuerung. Allgemeine Informationen zu Rollen finden Sie unter Übersicht zur Zugriffssteuerung.

Erforderliche Berechtigungen zum Erstellen und Ändern von Benutzern

Die folgenden Rollen oder Berechtigungen sind erforderlich, um Benutzer in Ihrem Konto zu verwalten:

Benutzer erstellen:

Die Systemrolle USERADMIN kann Benutzer mit SQL (CREATE USER) erstellen.

Wenn Sie es vorziehen, eine kundenspezifische Rolle für diesen Zweck zu verwenden, erteilen Sie dieser Rolle die Berechtigung CREATE USER für das Konto.

Benutzer modifizieren:

Nur die Rolle mit der Berechtigung OWNERSHIP für einen Benutzer kann die meisten Benutzereigenschaften über SQL (ALTER USER) ändern.

Erstellen von Benutzern

In diesem Abschnitt wird beschrieben, wie Sie einen Benutzer in einem bestimmten Konto über die Weboberfläche Ihrer Wahl anlegen.

Berücksichtigen Sie bei der Wahl der Weboberfläche, sei es Classic Console oder Snowsight, dass Sie beim Anlegen eines Benutzers ein Kennwort angeben müssen. Die Befehle CREATE USER und UserCollection. create Python API tun dies nicht.

Bemerkung

Wenn Sie einen Benutzer anlegen möchten, der auf mehrere Konten innerhalb einer Organisation zugreifen kann, lesen Sie Organisationsbenutzer.

Verwenden von Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Admin » Users & Roles aus.

  3. Wählen Sie + User aus.

  4. Geben Sie im Feld User Name einen eindeutigen Bezeichner für den Benutzer ein. Der Benutzer verwendet diesen Bezeichner, um sich bei Snowflake anzumelden, es sei denn, Sie geben einen Anmeldenamen an.

  5. Geben Sie optional im Feld Email eine E-Mail-Adresse für den Benutzer an.

  6. Geben Sie in den Feldern Password und Confirm Password das Kennwort für den Benutzer ein.

  7. Fügen Sie optional einen Kommentar hinzu, der erklärt, warum Sie den Benutzer erstellt haben.

  8. Lassen Sie das Kontrollkästchen Force user to change password on first time login aktiviert, um den Benutzer zu zwingen, sein Kennwort zu ändern, wenn er sich anmeldet.

  9. Wählen Sie optional Advanced User Options aus, um weitere Details zu dem Benutzer anzugeben:

    • Login Name ist der Name, der anstelle des Benutzernamens (User Name) bei der Anmeldung in Snowflake zu verwenden ist.

    • Display Name ist der Name, der nach der Anmeldung angezeigt wird.

    • First Name (Vorname) und Last Name (Nachname), um das Benutzerprofil zu vervollständigen.

    • Default Role (Standardrolle), Default Warehouse (Standard-Warehouse) und Default Namespace (Standard-Namespace)

  10. Wählen Sie Create User aus, um den Benutzer zu erstellen.

Verwenden der klassischen Konsole

  1. Wählen Sie Account Registerkarte „Konto“ » Users aus.

  2. Wählen Sie Create aus.

  3. Geben Sie im Feld User Name einen eindeutigen Bezeichner für den Benutzer ein.

    Bemerkung

    Der Benutzername ist der eindeutige Bezeichner eines Benutzers in Snowflake. Dabei handelt es sich nicht um den Anmeldenamen des Benutzers (d. h. den Namen, den der Benutzer bei der Anmeldung bei Snowflake eingibt). In Snowflake können Benutzername und Anmeldename eines Benutzers unterschiedlich sein. Geben Sie auf dem nächsten Bildschirm einen Anmeldenamen für den Benutzer an.

  4. Geben Sie in den Feldern Password und Confirm Password das Kennwort für den Benutzer ein.

  5. Lassen Sie das Kontrollkästchen Force Password Change aktiviert, damit der Benutzer bei der nächsten Anmeldung zur Änderung seines Kennworts gezwungen wird. Andernfalls deaktivieren Sie das Kontrollkästchen.

  6. Wählen Sie Next aus. Der Bildschirm Advanced wird angezeigt.

  7. Geben Sie optional Login Name, Display Name und persönliche Daten für den Benutzer ein.

    Bemerkung

    Benutzer benötigen einen Anmeldenamen, um sich bei Snowflake anzumelden. Wenn Sie keinen Anmeldenamen explizit angeben, verwendet Snowflake den Benutzernamen als Anmeldenamen.

  8. Wählen Sie Next aus. Der Bildschirm Preferences wird angezeigt.

  9. Geben Sie optional Standardwerte für den Benutzer ein:

    • Virtuelles Warehouse

    • Namespace in der Form db_name oder db_name.schema_name

    • Rolle

  10. Wählen Sie Finish aus. Snowflake zeigt eine Erfolgsmeldung an.

Verwenden von SQL

Verwenden Sie den Befehl CREATE USER, um einen Benutzer zu erstellen.

Wichtig

Wenn Sie beim Erstellen eines Benutzers dem Benutzer eine Standardrolle zuweisen, müssen Sie dem Benutzer diese Rolle danach explizit gewähren. Beispiel:

CREATE USER janesmith PASSWORD = 'abc123' DEFAULT_ROLE = myrole MUST_CHANGE_PASSWORD = TRUE;

GRANT ROLE myrole TO USER janesmith;
Copy

Mit dem Befehl GRANT ROLE können Sie einem Benutzer mehrere Rollen zuweisen. Die Weboberfläche unterstützt diese Funktion derzeit nicht.

Python verwenden

Verwenden Sie UserCollection. create Python API um einen Benutzer zu erstellen.

Wichtig

Wenn Sie beim Erstellen eines Benutzers dem Benutzer eine Standardrolle zuweisen, müssen Sie dem Benutzer diese Rolle danach explizit gewähren. Beispiel:

from snowflake.core.user import Securable, User

my_user = User(
  name="janesmith",
  password="abc123",
  default_role="myrole",
  must_change_password=True)
root.users.create(my_user)

root.users['janesmith'].grant_role(role_type="ROLE", role=Securable(name='myrole'))
Copy

Deaktivieren/Aktivieren von Benutzern

Durch das Deaktivieren eines Benutzers kann sich der Benutzer nicht bei Snowflake anmelden. Sie können einen Benutzer über die folgenden Weboberflächen deaktivieren.

Verwenden von Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Admin » Users & Roles aus.

  3. Suchen Sie den Benutzer, den Sie deaktivieren möchten, und wählen Sie Weitere Optionen » Disable User aus.

  4. Wählen Sie im Bestätigungsdialog, der sich öffnet, Disable aus.

Führen Sie zum Aktivieren eines Benutzers die gleichen Schritte aus, aber wählen Sie Enable User (Benutzer aktivieren) aus.

Verwenden der klassischen Konsole

  1. Klicken Sie auf Account Registerkarte „Konto“ » Users.

  2. Klicken Sie auf eine Benutzerzeile, um diese auszuwählen, und klicken Sie dann auf die Schaltfläche Disable User. Ein Bestätigungsdialog wird geöffnet.

  3. Klicken Sie auf Yes, um den Benutzer zu deaktivieren.

Führen Sie zum Aktivieren eines Benutzers die gleichen Schritte aus, aber wählen Sie Enable User (Benutzer aktivieren) aus.

Verwenden von SQL

Verwenden Sie den Befehl ALTER USER, um einen Benutzer zu deaktivieren oder zu aktivieren. Beispiel:

  • Benutzer deaktivieren:

    ALTER USER janesmith SET DISABLED = TRUE;
    
    Copy
  • Benutzer aktivieren:

    ALTER USER janesmith SET DISABLED = FALSE;
    
    Copy

Python verwenden

Verwenden Sie UserResource. create_or_alter Python API, um einen Benutzer zu deaktivieren oder zu aktivieren. Beispiel:

  • Benutzer deaktivieren:

    user_parameters = root.users["janesmith"].fetch()
    user_parameters.disabled = True
    root.users["janesmith"].create_or_alter(user_parameters)
    
    Copy
  • Benutzer aktivieren:

    user_parameters = root.users["janesmith"].fetch()
    user_parameters.disabled = False
    root.users["janesmith"].create_or_alter(user_parameters)
    
    Copy

Entsperren eines Benutzers

Wenn eine Benutzeranmeldung nach fünf aufeinanderfolgenden Versuchen fehlschlägt, wird der Benutzer für einen bestimmten Zeitraum (derzeit 15 Minuten) von seinem Konto gesperrt. Nach Ablauf der Zeit löscht das System die Sperre automatisch und der Benutzer kann versuchen, sich erneut anzumelden.

Um den Benutzer vor Ablauf der Zeit zu entsperren, können Sie den Timer mit ALTER USER oder dem Befehl UserResource. create_or_alter Python API zurücksetzen.

Im folgenden Beispiel wird der Timer auf 0 zurückgesetzt, wodurch der Benutzer janesmith sofort entsperrt wird:

ALTER USER janesmith SET MINS_TO_UNLOCK= 0;
Copy

Tipp

Wenn eine einzelne Rolle die Berechtigung OWNERSHIP für alle Snowflake-Benutzer hat, empfehlen wir, die Rolle mehreren Benutzern zuzuweisen. Wenn ein Mitglied der Rolle gesperrt ist, kann auf diese Weise ein anderes Mitglied diesen Benutzer entsperren.

Ändern der Sitzungsparameter eines Benutzers

  • Verwenden Sie zum Anzeigen der Sitzungsparameter eines Benutzers die folgende SQL-Syntax:

    SHOW PARAMETERS [ LIKE '<pattern>' ] FOR USER <name>
    
    Copy
  • Verwenden Sie die folgende Syntax, um die Sitzungsparameter für einen Benutzer zu ändern:

    ALTER USER <name> SET <session_param> = <value>
    
    Copy

    Ermöglichen Sie beispielsweise einem Benutzer, auf unbestimmte Zeit ohne Unterbrechung mit Snowflake verbunden zu bleiben:

    ALTER USER janesmith SET CLIENT_SESSION_KEEP_ALIVE = TRUE;
    
    Copy
  • Verwenden Sie die folgende Syntax, um einen Sitzungsparameter für einen Benutzer auf den Standardwert zurückzusetzen:

    ALTER USER <name> UNSET <session_param>
    
    Copy

Ändern anderer Benutzereigenschaften

Alle anderen Eigenschaften des Benutzers können Sie mit ALTER USER oder dem Befehl UserResource. create_or_alter Python API ändern. Sie können viele der gleichen Benutzer-Eigenschaften mit Snowsight ändern.

Beispiel:

  • Ändern des Nachnamens von Benutzer janesmith in Jones:

    SQL:
    ALTER USER janesmith SET LAST_NAME = 'Jones';
    
    Copy
    Python:
    user_parameters = root.users["janesmith"].fetch()
    user_parameters.last_name = "Jones"
    root.users["janesmith"].create_or_alter(user_parameters)
    
    Copy
    Snowsight:
    1. Melden Sie sich bei Snowsight an.

    2. Wählen Sie Admin » Users & Roles aus.

    3. Suchen Sie den Benutzer, den Sie bearbeiten möchten, und wählen Sie Weitere Optionen » Edit aus.

    4. Geben Sie im Feld Last Name den Wert Jones ein.

    5. Wählen Sie Save User aus.

  • Einstellen oder Ändern der Standardwerte für Warehouse, Namespace, Primärrolle und Sekundärrolle für Benutzer janesmith:

    SQL:
    ALTER USER janesmith SET DEFAULT_WAREHOUSE = mywarehouse DEFAULT_NAMESPACE = mydatabase.myschema DEFAULT_ROLE = myrole DEFAULT_SECONDARY_ROLES = ('ALL');
    
    Copy
    Python:
    user_parameters = root.users["janesmith"].fetch()
    user_parameters.default_warehouse = "mywarehouse"
    user_parameters.default_namespace = "mydatabase.myschema"
    user_parameters.default_role = "myrole"
    user_parameters.default_secondary_roles = "ALL"
    root.users["janesmith"].create_or_alter(user_parameters)
    
    Copy
    Snowsight:

    Bemerkung

    Sie können keine Standard-Sekundärrollen für einen Benutzer mit Snowsight festlegen.

    1. Melden Sie sich bei Snowsight an.

    2. Wählen Sie Admin » Users & Roles aus.

    3. Suchen Sie den Benutzer, den Sie bearbeiten möchten, und wählen Sie Weitere Optionen » Edit aus.

    4. Öffnen Sie Advanced User Options, und geben Sie Werte in die entsprechenden Felder ein.

    5. Wählen Sie Save User aus.

Anzeigen von Benutzern

Sie können Informationen über Benutzer über die folgenden Weboberflächen anzeigen.

Verwenden von SQL

Verwenden Sie den Befehl DESCRIBE USER oder SHOW USERS, um Informationen zu einem oder mehreren Benutzern anzuzeigen.

Beispiel:

DESC USER janeksmith;
Copy

Python verwenden

Verwenden Sie UserResource. fetch Python API, um Informationen über einen Benutzer zu erhalten.

Beispiel:

my_user = root.users["janesmith"].fetch()
print(my_user.to_dict())
Copy

Verwenden Sie die UserCollection. iter Python API, um die Benutzer eines Kontos aufzulisten.

Beispiel:

users = root.users.iter(like="jane%")
for user in users:
  print(user.name)
Copy

Verwenden von Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Admin » Users & Roles aus.

  3. Suchen Sie den Benutzer, zu dem Sie weitere Details sehen möchten.

    Sie können den Anmeldenamen, den Status, die letzte Anmeldezeit, die Eigentümerrolle und die Frage, ob der Benutzer eine mehrstufige Authentifizierung (MFA) eingerichtet hat oder nicht, überprüfen. Wenn der Benutzer einen Kommentar abgegeben hat, können Sie den Mauszeiger über das Symbol Kommentar-Symbol bewegen.

  4. Wählen Sie optional den Benutzer aus, um weitere Details anzuzeigen, z. B. seine Standardeinstellungen, die Rollen, die dem Benutzer Berechtigungen zugewiesen haben, und die dem Benutzer zugewiesenen Rollen.

Löschen eines Benutzers

Durch das Löschen eines Benutzers werden die Benutzeranmeldeinformationen von Snowflake entfernt.

Wichtig

Wenn Sie einen Benutzer löschen, sind die Ordner, Arbeitsblätter und Dashboards, die diesem Benutzer gehören, nicht mehr zugänglich und werden nicht auf einen anderen Benutzer übertragen, es sei denn, die Freigabe ist aktiviert.

Empfänger einer Freigabe mit den Berechtigungen Ansicht, Ansicht + Ausführen und Bearbeiten behalten die ihnen zugewiesenen Berechtigungen und können weiterhin auf die gemeinsamen Ordner, Arbeitsblätter und Dashboards zugreifen. Allerdings können nur Benutzer mit Berechtigungen zum Bearbeiten die gemeinsamen Ordner, Arbeitsblätter und Dashboards ändern oder löschen. Wenn Sie nicht mindestens einem anderen Benutzer die Berechtigung zum Bearbeiten erteilen, bevor Sie den Eigentümer löschen, können die Ordner, Arbeitsblätter und Dashboards dieses Eigentümers nicht gelöscht werden.

Wenn für die Arbeitsblätter eines gelöschten Benutzers die Freigabe nicht aktiviert ist, kann ein Administrator bis zu 500 Arbeitsblätter wiederherstellen, die dem Benutzer gehören.

Vorsicht

Alle Arbeitsblätter in der Classic Console werden dauerhaft gelöscht, und Dashboards sind nicht mehr zugänglich, wenn sie nicht zuvor für einen anderen Benutzer freigegeben wurden.

Vom Benutzer erstellte Objekte, wie z. B. Tabellen oder Ansichten, werden nicht gelöscht, da sie der aktiven Rolle des Benutzers gehören, mit der die Objekte erstellt wurden. Ein anderer Benutzer, dem die gleiche Rolle oder eine höhere Rolle in der Rollenhierarchie zugewiesen wurde, kann die Objekte verwalten oder die Eigentümerschaft an eine andere Rolle übertragen.

Verwenden von Snowsight

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Admin » Users & Roles aus.

  3. Suchen Sie den Benutzer, den Sie deaktivieren möchten, und wählen Sie Weitere Optionen » Drop aus.

  4. Wählen Sie im Bestätigungsdialog, der sich öffnet, Drop User aus.

Verwenden der klassischen Konsole

  1. Wählen Sie Account Registerkarte „Konto“ » Users aus.

  2. Klicken Sie auf die Zeile eines Benutzers, um diese zu markieren, und wählen Sie dann Drop (Löschen) aus. Ein Bestätigungsdialog wird geöffnet.

  3. Wählen Sie Yes aus, um den Benutzer zu löschen.

Verwenden von SQL

Verwenden Sie den Befehl DROP USER, um einen Benutzer zu löschen.

DROP USER janesmith;
Copy

Python verwenden

Verwenden Sie UserResource. drop Python API um einen Benutzer zu löschen.

root.users["janesmith"].drop()
Copy