- カテゴリ:
LOGIN_HISTORY , LOGIN_HISTORY_BY_USER¶
LOGIN_HISTORY ファミリーのテーブル関数を使用して、Snowflakeユーザーによるさまざまなディメンションに沿ったログイン試行をクエリできます。
- LOGIN_HISTORY は、指定された時間範囲内のログインイベントを返します。 
- LOGIN_HISTORY_BY_USER は、指定した時間範囲内の指定したユーザーのログインイベントを返します。 
各関数は、指定されたディメンションに沿ったクエリ用に最適化されています。SQL 述語を使用して、結果をさらにフィルタリングできます。
注釈
これらの関数は、過去7日以内のログインアクティビティを返します。
構文¶
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> ] )
引数¶
すべての引数はオプションです。
- TIME_RANGE_START => constant_expr、 .- TIME_RANGE_END => constant_expr
- ログインイベントが発生した過去7日以内の時間範囲(TIMESTAMP_LTZ 形式)です。 - TIME_RANGE_ENDが指定されていない場合、関数は最新のログインイベントを返します。- 時間範囲が過去7日以内に収まらない場合、エラーが返されます。 
- USER_NAME => 'string'
- LOGIN_HISTORY_BY_USER にのみ適用 - ユーザー名または CURRENT_USER を指定する文字列です。指定されたユーザーのログインイベントのみが返されます。ログイン名は一重引用符で囲む必要があります。また、ログイン名にスペース、大文字と小文字の混在、または特殊文字がある場合、名前は二重引用符を一重引用符内で囲む必要があります(例: - '"User 1"'と- 'user1')。- デフォルト: CURRENT_USER 
- RESULT_LIMIT => num
- 関数によって返される行の最大数を指定する数です。 - 一致する行の数がこの制限を超える場合、指定された制限まで、最新のタイムスタンプを持つログインイベントが返されます。 - 範囲: - 1~- 10000- デフォルト: - 100
使用上の注意¶
- 情報スキーマテーブル関数を呼び出す場合、セッションには使用中の INFORMATION_SCHEMA スキーマ または 完全修飾の関数名が必要です。詳細については、 Snowflake Information Schema をご参照ください。 
出力¶
この関数は、次の列を返します。
| 列名 | データ型 | 説明 | 
|---|---|---|
| EVENT_TIMESTAMP | TIMESTAMP_LTZ | イベントの発生時間です。 | 
| EVENT_ID | NUMBER | イベントの一意のIDです。 | 
| EVENT_TYPE | VARCHAR | 認証イベントの LOGIN などのイベント型。 | 
| USER_NAME | VARCHAR | このイベントに関連付けられたユーザー。 | 
| CLIENT_IP | VARCHAR | リクエスト発信元のIP アドレス。 | 
| REPORTED_CLIENT_TYPE | VARCHAR | JDBC_DRIVER、 ODBC_DRIVERなど、報告されたクライアントソフトウェアの型。この情報は認証されません。 | 
| REPORTED_CLIENT_VERSION | VARCHAR | クライアントソフトウェアの報告されたバージョン。この情報は認証されません。 | 
| FIRST_AUTHENTICATION_FACTOR | VARCHAR | ユーザー認証に使用される方法(多要素認証を使用する場合の最初の要素)。 | 
| SECOND_AUTHENTICATION_FACTOR | VARCHAR | 多要素認証の2番目の要素。ユーザーが多要素認証を使用しなかった場合、この値はNULLになります。 | 
| IS_SUCCESS | VARCHAR | ユーザーリクエストが成功したかどうかを示します。 | 
| ERROR_CODE | NUMBER | リクエストが成功しなかった場合のエラーコード。 | 
| ERROR_MESSAGE | VARCHAR | リクエストが成功しなかった場合にユーザーに返されるエラーメッセージ。 | 
| RELATED_EVENT_ID | NUMBER | 今後の使用のために予約されています。 | 
| CONNECTION | VARCHAR | クライアントが使用する接続の名前。クライアントが接続 NULL を使用していない場合は URL。接続は クライアントリダイレクト の一部のSnowflakeオブジェクトです。接続を表します URL ビジネスの継続性と障害復旧のために、別のアカウントにフェイルオーバーするために使用できる。 .,`NOTE:クライアントが接続 IdP ではなく、アカウント URL で構成されたIDプロバイダー(URL)を介して認証する場合は、認証の完了後、 IdP がクライアントをアカウント URL に転送します。このログインイベントの CONNECTION 列は NULL です。:ref:`label-authentication_and_client_redirect をご参照ください。 | 
| CLIENT_PRIVATE_LINK_ID | VARCHAR | ユーザーが プライベート接続 を使用してログインした場合、リクエストの発信元のエンドポイントの識別子を指定します。 | 
| FIRST_AUTHENTICATION_FACTOR_ID | VARCHAR | ユーザー認証に使用される:doc:`認証情報</sql-reference/account-usage/credentials>`のID(多要素認証を使用する場合の最初の要素)。 | 
| SECOND_AUTHENTICATION_FACTOR_ID | VARCHAR | 多要素認証の2番目の要素に使用される:doc:`認証情報</sql-reference/account-usage/credentials>`のIDユーザーが多要素認証を使用しなかった場合、この値はNULLになります。 | 
無効な SAML 応答のために失敗したログイン試行のエラーコード/メッセージの詳細については、 フェデレーション認証と SSO トラブルシューティング をご参照ください。
例¶
現在のユーザーの最新のログインイベントを100個まで取得します。
select * from table(information_schema.login_history_by_user()) order by event_timestamp;
指定したユーザーの最新のログインイベントを1000個まで取得します。
select * from table(information_schema.login_history_by_user(USER_NAME => 'USER1', result_limit => 1000)) order by event_timestamp;
過去1時間に、現在のロールが監視を許可されているすべてのユーザーの最大100個のログインイベントを取得します。
select * from table(information_schema.login_history(TIME_RANGE_START => dateadd('hours',-1,current_timestamp()),current_timestamp())) order by event_timestamp;