現役エンジニアの学びと日常
  • ホーム
  • 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 Cortex Searchとは?ベクトル検索の仕組みと作り方を初心者向けに解説のサムネイル Snowflake

Snowflake Cortex Searchとは?ベクトル検索の仕組みと作り方を初心者向けに解説

Snowflake Cortex Searchは、SQLだけで高精度な意味検索を実現できるマネージドサービスです。仕組み・作り方・RAGでの活用方法をフレンドリーに解説します。
Snowflake AI_COMPLETE関数入門|SQLでLLMを呼び出す方法・構造化出力・コスト管理まで解説のサムネイル Snowflake

Snowflake AI_COMPLETE関数入門|SQLでLLMを呼び出す方法・構造化出力・コスト管理まで解説

Snowflake AI_COMPLETE関数の使い方を初心者向けに解説。SQLからLLMを呼び出す基本、model_parameters、show_details、response_format、return_error_details、権限、コスト管理、旧COMPLETEとの違いをまとめます。
Snowflake「String is too long and would be truncated」エラーの原因と対処法のサムネイル Snowflake

Snowflake「String is too long and would be truncated」エラーの原因と対処法

Snowflakeで「String is too long and would be truncated」エラーが出たときの原因と、VARCHAR長・CAST・TRUNCATE設定での対処法を初心者向けに解説します。
Insufficient privileges to operate on の原因と解決手順のサムネイル Snowflake

Insufficient privileges to operate on の原因と解決手順

Snowflakeで頻発する「Insufficient privileges to operate on」エラー。原因の本質は権限不足だが、どの階層で切れているかを見抜ければ修正は数分で終わる。現場目線の確認SQLとGRANT例で整理した。
Snowflake RBAC入門|ロールで権限管理を始めようのサムネイル Snowflake

Snowflake RBAC入門|ロールで権限管理を始めよう

Snowflakeのロールベースアクセス制御 (RBAC) の基本を初心者向けに解説。ユーザー・ロール・権限・オブジェクトの関係性、システム定義ロールの使い分け、GRANT文の具体例まで、運用に役立つポイントをやさしくまとめました。
Snowflake Time TravelとFail-safe入門|誤操作からデータを守る2層バックアップのサムネイル Snowflake

Snowflake Time TravelとFail-safe入門|誤操作からデータを守る2層バックアップ

Snowflakeの2層データ保護機能「Time Travel」と「Fail-safe」を初心者向けに解説。誤って削除したテーブルを取り戻す具体的な方法を紹介します。
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 現役エンジニアの学びと日常.