Snowflake-Sitzungen und Sitzungsrichtlinien¶
Unter diesem Thema werden Snowflake-Sitzungen und Sitzungsrichtlinien beschrieben sowie eine Anleitung zum Konfigurieren von Sitzungsrichtlinien auf Konto- oder Benutzerebene bereitgestellt.
Snowflake-Sitzungen¶
Eine Sitzung beginnt, wenn ein Benutzer eine Verbindung zu Snowflake hergestellt und sich erfolgreich über einen programmgesteuerten Snowflake-Client, Snowsight oder die klassische Weboberfläche authentifiziert hat. Eine Sitzung ist unabhängig von einer Sitzung des Identitätsanbieters (d. h. IdP). Wenn die Snowflake-Sitzung abläuft, aber die IdP-Sitzung aktiv bleibt, kann sich ein Benutzer bei Snowflake anmelden, ohne seine Anmeldeinformationen erneut eingeben zu müssen (d. h. stille Authentifizierung).
Bei fortgesetzter Benutzeraktivität bleibt eine Sitzung auf unbestimmte Zeit aufrechterhalten. Nach einer Zeit der Inaktivität in der Sitzung, die als Sitzungstimeout bei Leerlauf bezeichnet wird, muss sich der Benutzer erneut bei Snowflake authentifizieren. Das Sitzungstimeout bei Leerlauf hat einen Höchstwert von vier Stunden, wobei dieser Wert über eine Sitzungsrichtlinie geändert werden kann. Das Sitzungstimeout bei Leerlauf gilt für Folgendes:
Unterstützte Konnektoren und Treiber
Clients von Drittanbietern, die über einen unterstützten Konnektor oder Treiber eine Verbindung zu Snowflake herstellen
Snowflake empfiehlt, bestehende Sitzungen nach Möglichkeit wiederzuverwenden und die Verbindung zu Snowflake zu schließen, wenn eine Sitzung nicht mehr benötigt wird.
Snowsight-Sitzungen¶
Snowflake erstellt für jedes Arbeitsblatt in Snowsight eine neue Sitzung. Eine Arbeitsblattsitzung setzt die Sitzungsrichtlinie durch, die für den Benutzer gilt, der das Arbeitsblatt erstellt.
Vorsicht
Aktive Abfragen werden nicht abgebrochen, wenn die Sitzung endet und der Benutzer abgemeldet wird, auch wenn der Parameter ABORT_DETACHED_QUERY auf „true“ gesetzt ist.
Sitzungen der klassischen Konsole¶
Jedes Mal, wenn ein neues Arbeitsblatt erstellt wird, erstellt Snowflake auf der Registerkarte Worksheets eine neue Sitzung. Jedes Arbeitsblatt ist auf eine maximale Leerlaufzeit von 4 Stunden beschränkt, wobei das Leerlauf-Timeout wird für jedes Arbeitsblatt separat erfasst.
Wenn ein Arbeitsblatt geschlossen wird, endet die Benutzersitzung für dieses Arbeitsblatt.
Nach Ablauf des 4-Stunden-Zeitlimits für ein beliebiges offenes Arbeitsblatt meldet Snowflake den Benutzer bei der Weboberfläche ab.
Bemerkung
Beachten Sie, dass bei passivem Verhalten wie dem Blättern durch das Abfrage-Resultset oder das Sortieren eines Datasets der Leerlauf-Timeout-Tracker der Sitzung nicht zurückgesetzt wird.
Um zu verhindern, dass eine Sitzung zu früh geschlossen und von der klassischen Weboberfläche abgemeldet wird, müssen Sie alle benötigten SQL-Anweisungen in einer lokalen Datei speichern und alle offenen, nicht verwendeten Arbeitsblätter schließen.
Sitzungsnutzung überwachen¶
Sie können aktive Sitzungen und die Sitzungsnutzung mit Snowsight oder einer SQL-Ansicht überwachen. Sie können Ihre eigenen Sitzungen anzeigen oder eine Rolle mit Zugriff auf die Ansicht SESSIONS verwenden, um die Sitzungen für Ihr Konto anzuzeigen. Siehe ACCOUNT_USAGE-Schema – SNOWFLAKE-Datenbankrollen.
- SQL:
Fragen Sie die Ansicht SESSIONS im ACCOUNT USAGE-Schema der freigegebenen SNOWFLAKE-Datenbank ab, um die Sitzungsnutzung zu überwachen.
- Snowsight:
Wählen Sie Admin » Security und dann die Registerkarte Sessions aus. Sie können die Sitzungs-ID, den Benutzernamen, die Startzeit, den für die Sitzung verwendeten Client-Treiber, die Client-Netzadresse und die Authentifizierungsmethode überprüfen. Bewegen Sie den Mauszeiger über die Startzeit, um das genaue Datum und die genaue Uhrzeit des Beginns der Sitzung in Ihrer lokalen Zeitzone anzuzeigen.
Sitzungsrichtlinien¶
Eine Sitzungsrichtlinie definiert das :emph: -Sitzungstimeout in Minuten und bietet die Option, den für das Leerlauf-Timeout definierten Standardwert zu überschreiben. Die Timeout-Periode beginnt nach erfolgreicher Authentifizierung bei Snowflake. Der minimale konfigurierbare Wert für das Leerlauf-Timeout einer Sitzungsrichtlinie ist `` 5
Minuten.
Wenn keine Sitzungsrichtlinie festgelegt ist, verwendet Snowflake einen Standardwert von 240
Minuten (vier Stunden).
Nach Ablauf des Sitzungstimeouts muss sich der Benutzer erneut bei Snowflake authentifizieren. Snowflake setzt jedoch keine der durch Kundenspezifischer Logout-Endpunkt definierten Einstellungen durch.
Die Sitzungsrichtlinie kann für ein Konto oder einen Benutzer mit konfigurierbaren Timeoutperioden nach Leerlauf festgelegt werden, um Compliance-Anforderungen zu erfüllen. Wenn ein Benutzer mit einer Sitzungsrichtlinie sowohl auf Konto- als auch auf Benutzerebene verbunden ist, hat die Sitzungsrichtlinie auf Benutzerebene Vorrang. Nachdem die Sitzungsrichtlinie für das Konto oder den Benutzer festgelegt wurde, setzt Snowflake die Sitzungsrichtlinie durch.
Es gibt zwei Eigenschaften, die das Verhalten der Sitzungsrichtlinie bestimmen:
SESSION_IDLE_TIMEOUT_MINS
für programmgesteuerte Clients und Snowflake-ClientsSESSION_UI_IDLE_TIMEOUT_MINS
für die klassische Weboberfläche und für Snowsight.
Weitere Informationen dazu finden Sie unter Sitzungsrichtlinien verwalten.
Sekundärrollen in einer Sitzungsrichtlinie¶
Wenn ein Benutzer eine Verbindung zu Snowflake herstellt und die Sitzung beginnt, kann der Benutzer Sekundärrollen mit dem Befehl USE SECONDARY ROLES aktivieren. Als Sicherheitsadministrator möchten Sie jedoch vielleicht die Sekundärrollen verwalten, die für einen einzelnen Benutzer, Benutzergruppen und das gesamte Konto zur Verfügung stehen. Die Verwaltung von Sekundärrollen hilft dabei, den Bereich der Berechtigungen, die einem Benutzer für die Dauer der Sitzung zur Verfügung stehen, einzugrenzen.
Um diese Verwaltungsanforderungen zu erfüllen, können Sie die Eigenschaft ALLOWED_SECONDARY_ROLES
in einer Sitzungsrichtlinie einstellen und die Sitzungsrichtlinie für das Konto oder einen Benutzer in dem Konto festlegen. Dann kann der Benutzer den Befehl USE SECONDARY ROLES ausführen und die Sekundärrollen angeben, die er während der Snowflake-Sitzung verwenden kann.
Weitere Beispiele finden Sie unter Sekundärrollen in einer Sitzungsrichtlinie festlegen.
Bemerkung
Wenn Sie die Eigenschaft ALLOWED_SECONDARY_ROLES
in einer Sitzungsrichtlinie einstellen, beginnt die Durchsetzung der Sekundärrollen mit dem Beginn einer neuen Sitzung. Sie können eine neue Snowflake-Sitzung starten, indem Sie sich bei Snowflake anmelden oder ein neues Arbeitsblatt in der Snowsight öffnen.
Bevor Sie die Sitzungsrichtlinie aktualisieren, um Sekundärrollen zu bewerten, sollten Sie Ihren Workload-Plan und die Zugriffssteuerung für jeden Workload berücksichtigen, um unnötige Workload-Unterbrechungen zu vermeiden.
Hinweise¶
Wenn ein Client die Option CLIENT_SESSION_KEEP_ALIVE unterstützt und die Option auf
TRUE
gesetzt ist, behält der Client die Snowflake-Sitzung auf unbestimmte Zeit bei, solange die Verbindung zu Snowflake aktiv ist. Wenn die Option dagegen aufFALSE
gesetzt ist, endet die Sitzung nach 4 Stunden. Wenn möglich, sollten Sie diese Option vermeiden, da sie zu vielen offenen Sitzungen führen kann und die Ressourcen stärker beansprucht, was zu Beeinträchtigungen der Leistung führen kann.Sie können den CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY-Parameter verwenden, um die Anzahl der Sekunden anzugeben, die zwischen den Versuchen des Clients liegen, das Token für die Sitzung zu aktualisieren. Die Weboberflächensitzung kann aktualisiert werden, wenn Snowflake-Objekte weiter verwendet werden, z. B. bei der Ausführung von DDL- und DML-Anweisungen. Snowflake führt alle 30 Sekunden eine Prüfung auf dieses Verhalten aus.
Beim Erstellen eines neuen Arbeitsblatts oder beim Öffnen eines vorhandenen Arbeitsblatts wird weiterhin die bestehende Benutzersitzung verwendet, wobei jedoch das Leerlauf-Sitzungstimeout auf 0 zurückgesetzt wird.
Einschränkungen¶
- Zukünftige Berechtigungszuweisungen:
Zukünftige Berechtigungszuweisungen zu Sitzungsrichtlinien werden nicht unterstützt.
Als Problemumgehung können Sie einer kundenspezifischen Rolle die Berechtigung APPLYSESSION POLICY zuweisen, damit diese Rolle Sitzungsrichtlinien auf ein Snowflake-Konto anwenden kann.