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 Benutzende eine Verbindung zu Snowflake hergestellt und sich erfolgreich über einen programmgesteuerten Snowflake-Client oder Snowsight authentifiziert haben. Eine Sitzung ist unabhängig von einer Sitzung des Identitätsanbieters (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 standardmäßig 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 Standard-Timeout für Leerlauf-Sitzungen beträgt vier Stunden für Nicht-UI-Sitzungen (programmgesteuert) und 18 Stunden fürUI-Sitzungen (wenn BCR-2139 aktiviert ist). Die Sitzungsrichtlinie kann die Zeitüberschreitung von Sitzungen nach Leerlauf von einem Minimum von 5 Minuten auf ein Maximum von 24 Stunden ändern.
Eine Sitzungsrichtlinie kann auch eine maximale Sitzungslebensdauer erzwingen, die die Sitzung nach einer festgelegten Dauer unabhängig von der Aktivität beendet. Der konfigurierbare Bereich beträgt 0 Minuten bis 30 Tage, wobei ein Wert von 0 bedeutet, dass keine maximale Lebensdauer erzwungen wird. Standardmäßig wird keine maximale Lebensdauer erzwungen. Diese Sitzungstimeouts gelten 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.
Ablauf und Abmeldeverhalten einer Snowsight-Sitzung¶
Eine Snowsight-Sitzung bleibt aktiv, solange der Benutzer mit der Anwendung interagiert, das konfigurierte Sitzungstimeout bei Leerlauf nicht überschritten und die maximale Sitzungsdauer (falls konfiguriert) nicht erreicht wurde.
Die Leerlauf-Zeitüberschreitung der Sitzung wird durch die Sitzungsrichtlinie Ihrer Organisation gesteuert. Das standardmäßige Leerlauf-Timeout beträgt vier Stunden (oder 18 Stunden, wenn für BCR-2139 angemeldet). Wenn länger als dieser Zeitraum keine Aktivität stattfindet, läuft die Sitzung ab und Sie werden automatisch abgemeldet.
Eine Sitzungsrichtlinie kann auch eine maximale Sitzungsdauer erzwingen. Wenn konfiguriert, läuft die Sitzung unabhängig von der Aktivität nach der angegebenen Dauer ab. Standardmäßig wird keine maximale Lebensdauer erzwungen.
Zusätzlich zum Leerlauf-Timeout und der maximalen Lebensdauer wird die Sitzungspersistenz auch durch Authentifizierungs-Cookies beeinflusst:
In den meisten Fällen führt das Schließen und erneute Öffnen des Browsers zur Beendigung Ihrer Snowsight-Sitzung unabhängig von Ihrer Leerlaufzeit.
Wenn Ihr Authentifizierungs-Cookie abläuft (normalerweise nach 24 Stunden), müssen Sie sich erneut anmelden, auch wenn Sie nicht länger als das Sitzungs-Timeout inaktiv waren.
Wenn Ihre Netzwerkverbindung unterbrochen wird oder Sie versuchen, auf Snowsight von einem nicht zulässigen Netzwerk zuzugreifen, kann es sein, dass Ihre Sitzung geschlossen und Sie abgemeldet werden.
Wenn eine Sitzung aus irgendeinem Grund geschlossen wird, werden alle laufenden Abfragen oder Jobs, die mit dieser Sitzung verbunden sind, mit einer kurzen Verzögerung (in der Regel innerhalb weniger Minuten) beendet.
Bemerkung
Eine Sitzung kann aufgrund von Leerlauf-Timeout, maximaler Sitzungslebensdauer, Cookie-Ablauf, Browser-Neustarts oder Verstößen gegen Netzwerkrichtlinien ablaufen. Wenn Sie Ihren Browser schließen oder über einen längeren Zeitraum inaktiv sind, müssen Sie sich möglicherweise erneut anmelden, auch wenn Sie das konfigurierte Leerlauf-Timeout nicht erreicht haben.
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 im Navigationsmenü die Option Governance & security » Network policies 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 den Standardwert 240 Minuten (vier Stunden) für Nicht-UI-Sitzungen (programmgesteuert). Für Snowsight-Sitzungen ist die Standardeinstellung``1080`` Minuten (18 Stunden), wenn BCR-2139 aktiviert ist; oder alternativ 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 Werten für Leerlauf-Timeout und maximale Sitzungsdauer 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 des Leerlauf-Timeouts bestimmen:
SESSION_IDLE_TIMEOUT_MINSfür programmgesteuerte Clients und Snowflake-ClientsSESSION_UI_IDLE_TIMEOUT_MINSfür Snowsight
Eine Sitzungsrichtlinie kann auch die maximale Lebensdauer der Sitzung, unabhängig von der Aktivität definieren. Wenn die maximale Lebensdauer erreicht ist, muss sich der Benutzer erneut authentifizieren, auch wenn die Sitzung noch aktiv ist. Der konfigurierbare Bereich liegt zwischen 0 und 43200 Minuten (30 Tage).
Wenn eine Sitzungsrichtlinie festgelegt, aber keine Sitzungsdauer definiert ist, verwendet Snowflake den Standardwert
0, was bedeutet, dass keine maximale Lebensdauer erzwungen wird.
Es gibt zwei Eigenschaften, die das Verhalten bei maximaler Lebensdauer bestimmen:
SESSION_MAX_LIFESPAN_MINSfür programmgesteuerte Clients und Snowflake-ClientsSESSION_UI_MAX_LIFESPAN_MINSfü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 möglicherweise die Sekundärrollen verwalten, die für einen einzelnen Benutzer, Gruppen von Benutzern oder 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. Diese Eigenschaft steuert die Sekundärrollen, die in einer Sitzung aktiviert werden können. Wenn Sie diese Eigenschaft auf eine leere Liste ALLOWED_SECONDARY_ROLES=() setzen, werden Sekundärrollen in einer Sitzung deaktiviert.
Weitere Beispiele finden Sie unter Sekundärrollen in einer Sitzungsrichtlinie festlegen.
Bemerkung
Wenn Sie die Eigenschaft ALLOWED_SECONDARY_ROLES in einer Sitzungsrichtlinie festlegen, beginnt die Durchsetzung der Sekundärrollen sofort, einschließlich bestehender Sitzungen.
Bevor Sie die Sitzungsrichtlinie aktualisieren, um Sekundärrollen einzuschränken, 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
TRUEgesetzt ist, behält der Client die Snowflake-Sitzung bei, solange die Verbindung zu Snowflake aktiv ist. Wenn jedoch eine Sitzungsrichtlinie mit einer maximalen Sitzungsdauer konfiguriert ist, endet die Sitzung unabhängig von der Aktivität immer noch mit dem Erreichen dieser Lebensdauer. Wenn die Option aufFALSEgesetzt ist, endet die Sitzung nach dem Leerlauf-Timeout (standardmäßig vier Stunden für programmatische Sitzungen). Vermeiden Sie diese Option nach Möglichkeit, da sie zu vielen offenen Sitzungen führen und die Ressourcennachfrage erhöhen kann, was unter Umständen zu einer Leistungsbeeinträchtigung führt.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.