Kategorien:

Information Schema, Tabellenfunktionen

LOGIN_HISTORY , LOGIN_HISTORY_BY_USER

Die LOGIN_HISTORY-Familie der Tabellenfunktionen kann verwendet werden, um Anmeldeversuche von Snowflake-Benutzern anhand verschiedener Dimensionen abzufragen:

  • LOGIN_HISTORY gibt Anmeldeereignisse innerhalb eines angegebenen Zeitbereichs zurück.

  • LOGIN_HISTORY_BY_USER gibt Anmeldeereignisse eines angegebenen Benutzers innerhalb eines angegebenen Zeitbereichs zurück.

Jede Funktion ist für die Abfrage anhand der angegebenen Dimension optimiert. Die Ergebnisse können mit SQL-Prädikaten weiter gefiltert werden.

Bemerkung

Diese Funktionen geben Anmeldeaktivitäten der letzten 7 Tage zurück.

Syntax

LOGIN_HISTORY(
      [  TIME_RANGE_START => <constant_expr> ]
      [, TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <num> ] )

LOGIN_HISTORY_BY_USER(
      [  USER_NAME => '<string>' ]
      [, TIME_RANGE_START => <constant_expr> ]
      [, TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <num> ] )

Argumente

Alle Argumente sind optional.

TIME_RANGE_START => Konstantenausdruck, . TIME_RANGE_END => Konstantenausdruck

Zeitbereich (im Format TIMESTAMP_LTZ) innerhalb der letzten 7 Tage, in dem das Anmeldeereignis stattgefunden hat.

Wenn TIME_RANGE_END nicht angegeben ist, gibt die Funktion die letzten Anmeldeereignisse zurück.

Wenn der Zeitbereich nicht in den letzten 7 Tagen liegt, wird ein Fehler zurückgegeben.

USER_NAME => 'Zeichenfolge'

Gilt nur für LOGIN_HISTORY_BY_USER

Eine Zeichenfolge zur Angabe eines Benutzernamens oder CURRENT_USER. Es werden nur Anmeldeereignisse für den angegebenen Benutzer zurückgegeben. Beachten Sie, dass der Anmeldename in einfache Anführungszeichen gesetzt werden muss. Wenn der Anmeldename Leerzeichen, gemischte Groß- und Kleinbuchstaben oder Sonderzeichen enthält, muss der Name innerhalb der einfachen Anführungszeichen in doppelte Anführungszeichen gesetzt werden (z. B. '"User 1"' vs. 'user1').

Standard: CURRENT_USER

RESULT_LIMIT => Zahl

Eine Zahl, die die maximale Anzahl von Zeilen angibt, die von der Funktion zurückgegeben werden.

Wenn die Anzahl der übereinstimmenden Zeilen größer ist als dieser Grenzwert, werden die Anmeldeereignisse mit dem neuesten Zeitstempel zurückgegeben – bis zum angegebenen Grenzwert.

Bereich: 1 bis 10000

Standard: 100.

Nutzungshinweise

  • Beim Aufrufen einer Tabellenfunktion des Information Schema muss die Sitzung über ein aktives INFORMATION_SCHEMA-Schema verfügen oder der Funktionsname muss vollqualifiziert sein. Weitere Details dazu finden Sie unter Information Schema.

Ausgabe

Die Funktion gibt die folgenden Spalten zurück:

Spaltenname

Datentyp

Beschreibung

EVENT_TIMESTAMP

TIMESTAMP_LTZ

Zeitpunkt des Auftretens des Ereignisses.

EVENT_ID

NUMBER

Eindeutige ID des Ereignisses.

EVENT_TYPE

TEXT

Ereignistyp, z. B. LOGIN bei Authentifizierungsereignissen.

USER_NAME

TEXT

Benutzer, der diesem Ereignis zugeordnet ist.

CLIENT_IP

TEXT

IP-Adresse, von der die Anfrage stammte.

REPORTED_CLIENT_TYPE

TEXT

Gemeldeter Typ der Clientsoftware, z. B. JDBC_DRIVER, ODBC_DRIVER usw. Diese Informationen werden nicht authentifiziert.

REPORTED_CLIENT_VERSION

TEXT

Gemeldete Version der Clientsoftware. Diese Informationen werden nicht authentifiziert.

FIRST_AUTHENTICATION_FACTOR

TEXT

Methode zur Authentifizierung des Benutzers (der erste Faktor bei Verwendung von mehrstufiger Authentifizierung).

SECOND_AUTHENTICATION_FACTOR

TEXT

Der zweite Faktor bei Verwendung von mehrstufiger Authentifizierung; ansonsten NULL.

IS_SUCCESS

TEXT

Gibt an, ob die Benutzeranfrage erfolgreich war oder nicht.

ERROR_CODE

NUMBER

Fehlercode, wenn die Anfrage nicht erfolgreich war.

ERROR_MESSAGE

TEXT

Fehlermeldung, die an den Benutzer zurückgegeben wird, wenn die Anfrage nicht erfolgreich war.

RELATED_EVENT_ID

NUMBER

Reserviert für zukünftige Verwendung.

Einzelheiten zu den Fehlercodes/Fehlermeldungen für Anmeldeversuche, die aufgrund ungültiger SAML-Antworten nicht erfolgreich waren, finden Sie unter SAML-Fehlercodes.

Beispiele

Abrufen der bis zu 100 letzten Anmeldeereignisse des aktuellen Benutzers:

select *
from table(information_schema.login_history_by_user())
order by event_timestamp;

Abrufen der bis zu 1.000 letzten Anmeldeereignisse des angegebenen Benutzers:

select *
from table(information_schema.login_history_by_user('USER1', result_limit=>1000))
order by event_timestamp;

Abrufen von bis zu 100 Anmeldeereignissen in der letzten Stunde für jeden Benutzer, den Ihre aktuelle Rolle überwachen darf:

select *
from table(information_schema.login_history(dateadd('hours',-1,current_timestamp()),current_timestamp()))
order by event_timestamp;