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
aufSERVICE
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
aufLEGACY_SERVICE
festgelegt ist, stellt eine nicht-interaktive Integration dar. Dies ähneltSERVICE
, 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 EigenschaftenPASSWORD
undMUST_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¶
Melden Sie sich bei Snowsight an.
Wählen Sie Admin » Users & Roles aus.
Wählen Sie + User aus.
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.
Geben Sie optional im Feld Email eine E-Mail-Adresse für den Benutzer an.
Geben Sie in den Feldern Password und Confirm Password das Kennwort für den Benutzer ein.
Fügen Sie optional einen Kommentar hinzu, der erklärt, warum Sie den Benutzer erstellt haben.
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.
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)
Wählen Sie Create User aus, um den Benutzer zu erstellen.
Verwenden der klassischen Konsole¶
Wählen Sie Create aus.
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.
Geben Sie in den Feldern Password und Confirm Password das Kennwort für den Benutzer ein.
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.
Wählen Sie Next aus. Der Bildschirm Advanced wird angezeigt.
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.
Wählen Sie Next aus. Der Bildschirm Preferences wird angezeigt.
Geben Sie optional Standardwerte für den Benutzer ein:
Virtuelles Warehouse
Namespace in der Form
db_name
oderdb_name.schema_name
Rolle
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;
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'))
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¶
Melden Sie sich bei Snowsight an.
Wählen Sie Admin » Users & Roles aus.
Suchen Sie den Benutzer, den Sie deaktivieren möchten, und wählen Sie
» Disable User aus.
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¶
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.
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;
Benutzer aktivieren:
ALTER USER janesmith SET DISABLED = FALSE;
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)
Benutzer aktivieren:
user_parameters = root.users["janesmith"].fetch() user_parameters.disabled = False root.users["janesmith"].create_or_alter(user_parameters)
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;
user_parameters = root.users["janesmith"].fetch()
user_parameters.mins_to_unlock = 0
root.users["janesmith"].create_or_alter(user_parameters)
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>
Verwenden Sie die folgende Syntax, um die Sitzungsparameter für einen Benutzer zu ändern:
ALTER USER <name> SET <session_param> = <value>
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;
Verwenden Sie die folgende Syntax, um einen Sitzungsparameter für einen Benutzer auf den Standardwert zurückzusetzen:
ALTER USER <name> UNSET <session_param>
Ä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
inJones
:- SQL:
ALTER USER janesmith SET LAST_NAME = 'Jones';
- Python:
user_parameters = root.users["janesmith"].fetch() user_parameters.last_name = "Jones" root.users["janesmith"].create_or_alter(user_parameters)
- Snowsight:
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');
- 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)
- Snowsight:
Bemerkung
Sie können keine Standard-Sekundärrollen für einen Benutzer mit Snowsight festlegen.
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;
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())
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)
Verwenden von Snowsight¶
Melden Sie sich bei Snowsight an.
Wählen Sie Admin » Users & Roles aus.
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
bewegen.
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¶
Verwenden der klassischen Konsole¶
Verwenden von SQL¶
Verwenden Sie den Befehl DROP USER, um einen Benutzer zu löschen.
DROP USER janesmith;
Python verwenden¶
Verwenden Sie UserResource. drop Python API um einen Benutzer zu löschen.
root.users["janesmith"].drop()