Catégories :

Schéma d’information, Fonctions de table

LOGIN_HISTORY , LOGIN_HISTORY_BY_USER

La famille LOGIN_HISTORY de fonctions de table peut être utilisée pour interroger les tentatives de connexion effectuées par les utilisateurs de Snowflake selon différentes dimensions :

  • LOGIN_HISTORY renvoie les événements de connexion dans un intervalle de temps spécifié.

  • LOGIN_HISTORY_BY_USER renvoie les événements de connexion d’un utilisateur spécifié dans un intervalle de temps spécifié.

Chaque fonction est optimisée pour les requêtes au sein de la dimension spécifiée. Les résultats peuvent être filtrés à l’aide de prédicats SQL.

Note

Ces fonctions renvoient l’activité de connexion au cours des 7 derniers jours.

Syntaxe

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> ] )

Arguments

Tous les arguments sont facultatifs.

TIME_RANGE_START => expr_constante , . TIME_RANGE_END => expr_constante

Plage de temps (au format TIMESTAMP_LTZ), dans les 7 derniers jours durant lesquels l’événement de connexion s’est produit.

Si TIME_RANGE_END n’est pas spécifié, la fonction renvoie les événements de connexion les plus récents.

Si l’intervalle de temps ne tombe pas dans les 7 derniers jours, une erreur est renvoyée.

USER_NAME => 'chaîne'

S’applique uniquement à LOGIN_HISTORY_BY_USER

Une chaîne spécifiant un nom d’utilisateur ou CURRENT_USER. Seuls les événements de connexion pour l’utilisateur spécifié sont renvoyés. Notez que le nom d’utilisateur doit être entre guillemets simples. De plus, si le nom de connexion contient des espaces, des caractères en majuscules et minuscules ou des caractères spéciaux, le nom doit être entre guillemets doubles à l’intérieur des guillemets simples (p. ex. '"User 1"' vs 'user1').

Par défaut : CURRENT_USER

RESULT_LIMIT => nb

Un nombre spécifiant le nombre maximum de lignes renvoyé par la fonction.

Si le nombre de lignes correspondantes est supérieur à cette limite, les événements de connexion avec l’horodatage le plus récent sont renvoyés, jusqu’à la limite spécifiée.

Plage : de 1 à 10000

Par défaut : 100.

Notes sur l’utilisation

  • Lors de l’appel d’une fonction de la table de schémas d’informations, la session doit avoir un schéma INFORMATION_SCHEMA en cours d’utilisation ou le nom de la fonction doit être complètement qualifié. Pour plus de détails, voir Schéma d’information.

Sortie

La fonction renvoie les colonnes suivantes :

Nom de la colonne

Type de données

Description

EVENT_TIMESTAMP

TIMESTAMP_LTZ

Heure de l’occurrence de l’événement.

EVENT_ID

NUMBER

ID unique de l’événement.

EVENT_TYPE

TEXT

Type d’événement, tel que LOGIN pour les événements d’authentification.

USER_NAME

TEXT

Utilisateur associé à cet événement.

CLIENT_IP

TEXT

Adresse IP d’où provient la demande.

REPORTED_CLIENT_TYPE

TEXT

Type signalé du logiciel client, tel que JDBC_DRIVER, ODBC_DRIVER, etc. Cette information n’est pas authentifiée.

REPORTED_CLIENT_VERSION

TEXT

Version rapportée du logiciel client. Cette information n’est pas authentifiée.

FIRST_AUTHENTICATION_FACTOR

TEXT

Méthode utilisée pour authentifier l’utilisateur (le premier facteur est utilisé, si l’authentification à plusieurs facteurs).

SECOND_AUTHENTICATION_FACTOR

TEXT

Le deuxième facteur, si vous utilisez une authentification à plusieurs facteurs, ou NULL sinon.

IS_SUCCESS

TEXT

Indique si la demande de l’utilisateur a abouti ou non.

ERROR_CODE

NUMBER

Code d’erreur si la requête n’a pas abouti.

ERROR_MESSAGE

TEXT

Message d’erreur renvoyé à l’utilisateur si la requête n’a pas abouti.

RELATED_EVENT_ID

NUMBER

Réservé pour une utilisation future.

Pour plus d’informations sur les codes / messages d’erreur relatifs aux tentatives de connexion infructueuses en raison de réponses non valides SAML, voir Codes d’erreur SAML.

Exemples

Récupère au maximum les 100 derniers événements de connexion de l’utilisateur actuel :

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

Récupère au maximum les 1 000 derniers événements de connexion de l’utilisateur spécifié :

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

Récupère au maximum 100 événements de connexion de chaque utilisateur que votre rôle actuel est autorisé à surveiller durant la dernière heure :

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