- Kategorien:
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
bis10000
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;