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.
Snowsight session expiration and logout behavior¶
A Snowsight session remains active as long as the user is interacting with the application and has not exceeded the configured idle session timeout.
The session idle timeout is controlled by your organization’s session policy (the default is 4 hours). If there is no activity for longer than this period, the session will expire and you will be logged out automatically.
In addition to idle timeout, session persistence is also affected by authentication cookies:
In most cases, closing and reopening your browser will end your Snowsight session, regardless of your idle time.
If your authentication cookie expires (typically after 24 hours), you will be required to log in again, even if you have not been idle for longer than the session timeout.
If your network connection is lost or you attempt to access Snowsight from a disallowed network, your session may be closed and you will be logged out.
When a session is closed for any reason, any running queries or jobs associated with that session will be terminated after a short delay (usually within a few minutes).
Bemerkung
Session expiration can occur due to idle timeout, cookie expiration, browser restarts, or network policy violations. Closing your browser or being inactive for an extended period may require you to log in again, even if you have not reached the configured idle timeout.
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.