現役エンジニアの学びと日常
  • ホーム
  • Snowflake
  • 野球データ分析
  • 旅行
  • About

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

Snowflake監査ログ入門|Account UsageとInformation Schemaの違いをやさしく解説 Snowflake
2026.05.072026.05.24
この記事をシェアする𝕏B!FacebookLINEPocket
  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. 関連記事
    1. ▶次に読むべき記事

はじめに: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クエリが遅い原因と高速化チェックリスト完全版 – 関連するエラー対処の手順をまとめています
  • Snowflake「Network policy does not allow this IP」エラーの原因と解決手順 – 関連するエラー対処の手順をまとめています
  • Snowflake「Time travel data is not available」エラーの原因と過去データ復元の方法 – 関連するエラー対処の手順をまとめています
  • Insufficient privileges to operate on の原因と解決手順 – 関連するエラー対処の手順をまとめています
  • Snowflakeにログインできない時の対処法|MFA・IP・SSO切り分け完全ガイド – 関連するエラー対処の手順をまとめています

▶次に読むべき記事

Snowflake入門ガイド|12ステップで学ぶ学習ロードマップのサムネイル
Snowflake入門ガイド|12ステップで学ぶ学習ロードマップ
Snowflakeを基礎から学べる完全ガイド。入門・基礎・応用・上級の4フェーズ12ステップで、ウェアハウス・SQL・データロード・パフォー…
Snowflake Iceberg Table作成手順|外部ボリューム設定からCREATEまでのサムネイル
Snowflake Iceberg Table作成手順|外部ボリューム設定からCREATEまで
Snowflake Iceberg Tableを実際に作るときに必要な「外部ボリューム」の設定から、CREATE ICEBERG TABLE…
Snowflake Iceberg Tablesとは?外部ストレージで動くオープンテーブル形式を解説のサムネイル
Snowflake Iceberg Tablesとは?外部ストレージで動くオープンテーブル形式を解説
Snowflake Iceberg Tablesは、S3などの外部ストレージに置いたデータをオープン形式のまま、Snowflakeから普通の…

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

Snowflake入門ガイドへ戻る
この記事をシェアする𝕏B!FacebookLINEPocket
Soma のプロフィール画像
この記事を書いた人Soma

現役のデータエンジニア(6年目)。Snowflakeをはじめとするデータ基盤技術と、セイバーメトリクス・国内外の旅行記をゆるく書いています。

プロフィール詳細
Snowflake入門系
ACCOUNT_USAGESnowflakeSnowflake 初心者
Somaをフォローする
Soma

関連記事

Snowflakeクエリ最適化ベストプラクティス10選|初心者向け早見ガイドのサムネイル Snowflake

Snowflakeクエリ最適化ベストプラクティス10選|初心者向け早見ガイド

Snowflakeのクエリを速く・安く動かすための定番テクニック10個を初心者向けにやさしく解説。ウェアハウス選び、プルーニング、キャッシュ、JOIN順、クエリプロファイル活用までまとめました。
Snowflakeで初めてSQLを実行する手順|ウェアハウスの仕組みも解説のサムネイル Snowflake

Snowflakeで初めてSQLを実行する手順|ウェアハウスの仕組みも解説

SnowflakeでSQLを実行する手順を、現役データエンジニアが初心者向けに丁寧に解説します。仮想ウェアハウスの起動からSnowsightでのワークスペース作成、最初のクエリ実行までの流れを紹介。クレジット消費や自動停止の仕組みも理解できます。
Snowflakeのタスク×ストリームで作る!自動ELTパイプライン入門のサムネイル Snowflake

Snowflakeのタスク×ストリームで作る!自動ELTパイプライン入門

Snowflakeのタスクとストリームを組み合わせると、差分データだけを定期的に処理する継続的なELTパイプラインを驚くほど簡単に作れます。仕組みからSQL例まで初心者向けに解説します。
Snowflake「Memory limit exceeded」「Query was aborted due to memory exhaustion」エラー原因と解決方法のサムネイル Snowflake

Snowflake「Memory limit exceeded」「Query was aborted due to memory exhaustion」エラー原因と解決方法

Snowflakeで突如出る「Memory limit exceeded」エラー。ウェアハウスサイズ不足・JOIN爆発・スピル多発の3パターンを軸に、原因切り分けから具体的な解決SQL、再発防止までを実務目線でまとめました。
Snowflake VARIANT型のドット記法とFLATTENで半構造化データを自在に扱うのサムネイル Snowflake

Snowflake VARIANT型のドット記法とFLATTENで半構造化データを自在に扱う

Snowflake VARIANT型のドット記法とFLATTEN関数を使って、JSONなどの半構造化データから必要な値をSQLで取り出す方法を、初心者にもわかりやすくサンプル付きで解説します。
Snowflake Iceberg Tablesとは?外部ストレージで動くオープンテーブル形式を解説のサムネイル Snowflake

Snowflake Iceberg Tablesとは?外部ストレージで動くオープンテーブル形式を解説

Snowflake Iceberg Tablesは、S3などの外部ストレージに置いたデータをオープン形式のまま、Snowflakeから普通のテーブルのように扱える仕組みです。仕組みと使い方を初心者向けにやさしく解説します。
Snowflake命名規則ベストプラクティス|ウェアハウス・ユーザー・ロールのサムネイル
Snowflake命名規則ベストプラクティス|ウェアハウス・ユーザー・ロール
Snowflake Marketplace入門|データを公開・購入する方法をやさしく解説のサムネイル
Snowflake Marketplace入門|データを公開・購入する方法をやさしく解説
ホーム
Snowflake

カテゴリー

  • Snowflake(106)
  • 入門系(75)
  • トラブルシューティング系(25)
  • 新機能・ニュース系(6)
  • セイバーメトリクス(41)
  • 旅行(11)
  • 海外旅行(6)
  • 国内旅行(5)

最新記事

Snowflake

  • Snowflake Iceberg Table作成手順|外部ボリューム設定からCREATEまで2026年6月30日
  • Snowflake Iceberg Tablesとは?外部ストレージで動くオープンテーブル形式を解説2026年6月27日
  • Snowflake Openflowとは?Apache NiFiベースのデータ統合サービスを初心者向けに解説2026年6月18日

セイバーメトリクス

  • xwOBA・xBA・xSLG・xERAとは?Statcast期待値系指標で運と実力を分けて読む2026年6月7日
  • WPA(Win Probability Added)とは?1打席が試合に与えた勝率変動をやさしく解説2026年6月7日
  • Statcast打球指標入門|Exit Velocity・Launch Angle・Barrel・Hard-Hit%をやさしく解説2026年6月7日

旅行

  • 台湾・饒河街観光夜市で鳥占いを体験|料金・日本語通訳・流れを実体験レビュー2026年6月15日
  • ホテルグレイスリー台北宿泊記|朝食・立地・部屋・荷物預かりを実体験レビュー2026年6月8日
  • 台北の夜市はどこがおすすめ?寧夏・饒河街・士林を実際に巡って比較2026年6月6日
現役エンジニアの学びと日常
  • About
  • お問い合わせ
  • プライバシーポリシー
  • 免責事項
  • サイトマップ|現役エンジニアの学びと日常
© 2025 現役エンジニアの学びと日常.