データエンジニアの技術メモと日常の記録
現役エンジニアの学びと日常
  • ホーム
  • Snowflake
    • 入門系
    • トラブルシューティング系
    • 新機能・ニュース系
  • 野球データ分析
  • 旅行
  • About
  • サイトポリシー
  • お問い合わせ

Snowflake監査ログ入門|Account UsageとInformation Schemaの違いをやさしく解説

Snowflake監査ログ入門|Account UsageとInformation Schemaの違いをやさしく解説 Snowflake
2026.05.072026.05.10
  1. はじめに:Snowflakeの「監査ログ」って何?
  2. 2つの監査ログの違い
    1. SNOWFLAKE.ACCOUNT_USAGE
    2. INFORMATION_SCHEMA
  3. よく使うビュー&クエリ例
    1. 1. ログイン履歴を確認する(LOGIN_HISTORY)
    2. 2. クエリ履歴を確認する(QUERY_HISTORY)
    3. 3. 誰がどのテーブルを触ったか(ACCESS_HISTORY)
  4. よくあるユースケースと注意点
    1. ユースケース
    2. 注意点
  5. まとめ
  6. 参考リンク
  7. 関連記事

はじめに:Snowflakeの「監査ログ」って何?

「誰がいつログインしたのか」「どんなクエリが実行されたのか」「どのテーブルにアクセスされたのか」――こうした情報を確認することは、セキュリティ監査やトラブル調査に欠かせません。Snowflakeでは、これらの情報を 監査ログ として自動で蓄積してくれています。

この記事では、Snowflakeの監査ログを参照するための2つの仕組み、ACCOUNT_USAGE スキーマ と INFORMATION_SCHEMA の違いと使い方を、初心者の方にもわかるようにやさしく解説します!

Snowflake監査ログ入門|Account UsageとInformation Schemaの違いをやさしく解説

2つの監査ログの違い

Snowflakeでは SNOWFLAKE という共有データベースに、監査用のビューがあらかじめ用意されています。代表的な2つを比較してみましょう。

SNOWFLAKE.ACCOUNT_USAGE

  • 過去365日分の履歴を保持
  • アカウント全体の情報をまとめて参照可能
  • データ反映に 最大3時間程度の遅延 あり
  • デフォルトでは ACCOUNTADMIN ロールが必要

INFORMATION_SCHEMA

  • 各データベース配下に存在するスキーマ
  • 保持期間は短い(7日〜14日程度のものが多い)
  • リアルタイム性が高い(ほぼ即時反映)
  • テーブル関数として呼び出すスタイル

ざっくり言うと「長期分析ならACCOUNT_USAGE、いま起きたことを確認するならINFORMATION_SCHEMA」と覚えておくとOKです。

よく使うビュー&クエリ例

1. ログイン履歴を確認する(LOGIN_HISTORY)

「誰がいつ、どこからログインしたか」を確認できます。失敗したログインも記録されるので、不正アクセスの兆候を掴むのに最適です。

-- 過去7日間のログイン履歴(失敗含む)
SELECT event_timestamp,
       user_name,
       client_ip,
       reported_client_type,
       is_success,
       error_message
FROM   SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
WHERE  event_timestamp >= DATEADD(day, -7, CURRENT_TIMESTAMP())
ORDER BY event_timestamp DESC;

2. クエリ履歴を確認する(QUERY_HISTORY)

実行されたSQL文・実行時間・利用ウェアハウスなどがすべて残ります。重いクエリ調査やコスト分析にも便利です。

-- 過去24時間で実行時間が長かったクエリTop10
SELECT user_name,
       warehouse_name,
       total_elapsed_time/1000 AS sec,
       query_text
FROM   SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE  start_time >= DATEADD(hour, -24, CURRENT_TIMESTAMP())
ORDER BY total_elapsed_time DESC
LIMIT 10;

リアルタイムに見たい場合は、INFORMATION_SCHEMAのテーブル関数を使います。

SELECT *
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY())
ORDER BY start_time DESC
LIMIT 20;

3. 誰がどのテーブルを触ったか(ACCESS_HISTORY)

Enterprise Edition以上で利用できる強力なビュー。クエリで参照・更新された テーブル/カラム単位 の追跡が可能です。

SELECT query_start_time,
       user_name,
       direct_objects_accessed,
       objects_modified
FROM   SNOWFLAKE.ACCOUNT_USAGE.ACCESS_HISTORY
WHERE  query_start_time >= DATEADD(day, -1, CURRENT_TIMESTAMP())
ORDER BY query_start_time DESC;
3. 誰がどのテーブルを触ったか(ACCESS_HISTORY)の解説図

よくあるユースケースと注意点

ユースケース

  • セキュリティ監査:不審なIPからのログイン検知(Snowflakeネットワークポリシー入門と組み合わせると◎)
  • 権限変更の追跡:GRANTS_TO_USERS や GRANTS_TO_ROLES でロール付与履歴を確認(カスタムロールとGRANT/REVOKEと相性◎)
  • コスト分析:ACCOUNT_USAGEビュー入門でクレジット消費を追跡

注意点

  • ACCOUNT_USAGEは 遅延があるので「今この瞬間」を見るには不向き
  • ログ閲覧自体に高い権限が必要 → カスタムロールへ IMPORTED PRIVILEGES を付与して制限的に渡すのがおすすめ
  • 監査ログにはSQL文がそのまま残るので、列・行レベルセキュリティやMFA/SSOと合わせて運用ルールを整備しましょう

まとめ

Snowflakeの監査ログは、ACCOUNT_USAGE(長期・遅延あり)とINFORMATION_SCHEMA(短期・リアルタイム)の2本立てで提供されています。まずは QUERY_HISTORY と LOGIN_HISTORY から触ってみると、監視・調査・最適化のいずれにも効果が見えてきますよ。日々の運用に組み込んで、安心して使えるSnowflake環境を育てていきましょう!

参考リンク

  • ACCOUNT_USAGE スキーマ — Snowflake Documentation
  • INFORMATION_SCHEMA — Snowflake Documentation
  • QUERY_HISTORY ビュー
  • LOGIN_HISTORY ビュー
  • ACCESS_HISTORY ビュー

関連記事

  • Snowflakeクレジット消費を分析|ACCOUNT_USAGEビュー入門 – ACCOUNT_USAGEを使ったコスト分析の入門記事
  • Snowflakeネットワークポリシー入門|IPでアクセスを制限する方法 – 不審なログインを未然に防ぐIP制限の設定
  • Snowflake MFAとSSO設定入門|認証を強化する2つの仕組み – 監査ログと併用したい認証強化策
  • Snowflake列レベル・行レベルセキュリティ入門|ポリシーの作り方 – 監査と一緒に整備したいデータ保護のしくみ
  • Snowflakeカスタムロール作成とGRANT/REVOKE入門 – 監査ログ閲覧用ロールを作るときに役立つ
  • Snowflake RBAC入門|ロールで権限管理を始めよう – 監査の前提となる権限設計の基本

この記事は Snowflake入門ガイド の一部です。
全53記事の学習ロードマップに戻って、次のステップへ進めます。

Snowflake入門ガイドへ戻る
Snowflake入門系
ACCOUNT_USAGEINFORMATION_SCHEMALOGIN_HISTORYQUERY_HISTORYSnowflakeSnowflake 初心者監査ログ
Somaをフォローする
Soma

関連記事

Snowflake

Snowflakeデータロードの全体像|バルク・ストリーミング・サードパーティをやさしく解説

Snowflakeにデータを取り込む方法は大きく分けて「バルクロード」「ストリーミング」「サードパーティツール連携」の3種類。それぞれの特徴と使い分けを、初心者向けにフレンドリーに整理します。
Snowflake

Snowflakeクエリプロファイル入門|遅いクエリのボトルネックを見抜く方法

「このクエリ、なんで遅いの?」を解決する強い味方がクエリプロファイル。Snowsightでの開き方からボトルネックの読み解き方まで、初心者向けにやさしく解説します。
Snowflake

Snowflake QUALIFY句の使い方|ウィンドウ関数の絞り込みが超簡単に

SnowflakeのQUALIFY句は、ウィンドウ関数の結果をWHEREのように絞り込めるSnowflake独自の便利機能。サブクエリ不要でTOP N抽出や重複排除がスッキリ書けます。基本から実用例まで初心者向けに解説します。
Snowflake

Snowflake vs BigQuery 徹底比較|現役データエンジニアが料金・性能・運用で選び方を解説

Snowflake vs BigQueryを両方本番運用した現役データエンジニアが、料金・性能・運用・エコシステム・チーム適性の5軸で具体的な選び方を解説します。
Snowflake

Snowflakeタスク入門|定期実行ジョブを5分で作る方法

Snowflakeのタスク(Task)を使えば、cronやAirflow不要でSQLやストアドプロシージャを定期実行できます。基本構文、CRONスケジュール、タスクツリーまで初心者向けにやさしく解説します。
Snowflake

Snowflakeの主要な特徴とメリットを初心者向けにやさしく解説

Snowflakeの代表的な特徴である「マルチクラウド」「自動スケーリング」「データ共有」を初心者向けにやさしく解説。それぞれが何を意味し、なぜ便利なのかを具体例とともに紹介します。
Snowflake命名規則ベストプラクティス|ウェアハウス・ユーザー・ロール
Snowflake Marketplace入門|データを公開・購入する方法をやさしく解説
ホーム
Snowflake

サイト内を検索

現役エンジニアの学びと日常
  • About
  • お問い合わせ
  • プライバシーポリシー
  • サイトマップ
© 2025 現役エンジニアの学びと日常.
    • ホーム
    • Snowflake
      • 入門系
      • トラブルシューティング系
      • 新機能・ニュース系
    • 野球データ分析
    • 旅行
    • About
    • サイトポリシー
    • お問い合わせ
  • ホーム
  • トップ