Snowflake sessions and session policies¶
Unter diesem Thema werden Snowflake-Sitzungen und Sitzungsrichtlinien beschrieben sowie eine Anleitung zum Konfigurieren von Sitzungsrichtlinien auf Konto- oder Benutzerebene bereitgestellt.
Snowflake sessions¶
A session begins when a user connects to Snowflake and authenticates successfully using a Snowflake programmatic client or Snowsight. A session is independent of an identity provider (IdP) session. If the Snowflake session expires but the IdP session remains active, a user can log in to Snowflake without entering their login credentials again (i.e. silent authentication).
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.
Ablauf und Abmeldeverhalten einer Snowsight-Sitzung¶
Eine Snowsight-Sitzung bleibt aktiv, solange Benutzende mit der Anwendung interagieren und das konfigurierte Leerlauf-Timeout der Sitzung nicht überschritten wurde.
Das Leerlauf-Timeout der Sitzung wird durch die Sitzungsrichtlinie Ihrer Organisation gesteuert (die Standardeinstellung ist 4 Stunden). Wenn länger als dieser Zeitraum keine Aktivität stattfindet, läuft die Sitzung ab und Benutzende werden automatisch abgemeldet.
Neben dem Leerlauf-Timeout wird auch die Persistenz der Sitzung 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 eines Leerlauf-Timeouts, des Ablaufens von Cookies oder eines Neustarts des Browsers oder wegen Verstößen gegen die 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.
Monitor session usage¶
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.
Session policies¶
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_MINSfor programmatic and Snowflake clients.SESSION_UI_IDLE_TIMEOUT_MINSfor 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 auf unbestimmte Zeit bei, solange die Verbindung zu Snowflake aktiv ist. Wenn die Option dagegen aufFALSEgesetzt 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.