IBM Support

[Db2] Db2 V9.5 以降の監査の設定方法 (IM-10-0AF)

Question & Answer


Question

DB2 の監査機能によって、インスタンスやデータベースに対する操作を監査ログに記録できますが、簡単な設定方法の例を教えてください。

Answer

V9.5 で監査の機能が変更され、データベース・レベルの監査が行えるようになりました。
この文書ではインスタンス・レベルの監査の設定方法と、V9.5 以降で利用可能なデータベース・レベルの監査の設定方法について説明します。

[事前準備: 監査ログのパスの設定]
DB2 V9.5 以降で監査を開始するためには、アクティブな監査ログおよびアーカイブされた監査ログを書き込むパスが必要となります。
この例ではアクティブな監査ログのパスは /db2audit/active/ に、アーカイブされた監査ログのパスは /db2audit/archive/ に設定します。
$ db2audit configure datapath /db2audit/active archivepath /db2audit/archive

AUD0000I  操作が成功しました。

$ db2audit describe
DB2 監査設定:

監査がアクティブ: "FALSE "
監査イベントのログ: "FAILURE"
チェック・イベントのログ: "FAILURE"
オブジェクト保守イベントのログ: "FAILURE"
セキュリティー保守イベントのログ: "FAILURE"
システム管理者イベントのログ: "FAILURE"
妥当性検査イベントのログ: "FAILURE"
コンテキスト・イベントのログ: "NONE"
監査エラーで SQLCA を戻す: "FALSE "
監査データ・パス: "/db2audit/active/"
監査アーカイブ・パス: "/db2audit/archive/"

AUD0000I  操作が成功しました。

[インスタンス・レベルの監査の設定方法]
以下はインスタンス・レベルで接続ユーザーの監査を行うために VALIDATE カテゴリーを監査するように設定する例です。
注: db2audit コマンドは SYSADM 権限を持つユーザーで実行してください。
  1. 監査設定の変更 
    $ db2audit configure scope validate status both
    
    AUD0000I  操作が成功しました。
    
    $ db2audit describe
    DB2 監査設定:
    
    監査がアクティブ: "FALSE "
    監査イベントのログ: "FAILURE"
    チェック・イベントのログ: "FAILURE"
    オブジェクト保守イベントのログ: "FAILURE"
    セキュリティー保守イベントのログ: "FAILURE"
    システム管理者イベントのログ: "FAILURE"
    妥当性検査イベントのログ: "BOTH"
    コンテキスト・イベントのログ: "NONE"
    次の監査エラーで SQLCA を戻す: "FALSE "
    監査データ・パス: ""
    監査アーカイブ・パス: ""
    
    AUD0000I  操作が成功しました。
    
  2. 監査の開始
    $ db2audit start
    
    AUD0000I  操作が成功しました。
  3. 監査レコードの監査バッファーから監査ログへの書き出し
    $ db2audit flush
    
    AUD0000I  操作が成功しました。
  4. 監査レコードの抽出 (以下の例では audit.out ファイルに抽出しています)
    $ db2audit archive
    
    ノード   AUD      アーカイブされたまたは一時的なログ・ファイル
             メッセージ
    -------- -------- ---------------------------------------------------
           0 AUD0000I db2audit.instance.log.0.20140307161321
    
    AUD0000I  操作が成功しました。
    
    $ db2audit extract file audit.out from files db2audit.instance.log.0.20140307161321
    
    AUD0000I  操作が成功しました。
  5. 監査の停止
    $ db2audit stop
    
    AUD0000I  操作が成功しました。
監査レコードの出力例:audit.out
timestamp=2014-03-07-16.11.38.636946;
  category=VALIDATE;
  audit event=AUTHENTICATION;
  event correlator=0;
  event status=0;
  userid=v97fp9;
  authid=V97FP9;
  execution id=v97fp9;
  origin node=0;
  coordinator node=0;
  application id=*LOCAL_APPLICATION;
  application name=db2bp;
  auth type=CLIENT;
  plugin name=IBMOSauthclient;


[データベース・レベルの監査の設定方法]
DB2 V9.5 以降、データベース・レベルでの監査が可能となり、より詳細に監査の対象を設定することが可能です。
以下は SAMPLE データベースで APPLUSER による SQL ステートメントの実行を監査するために、APPLUSER に対してEXECUTE カテゴリーを監査するように設定する例です。
注1: db2audit コマンドは SYSADM 権限を持つユーザーで実行してください。
注2: CREATE AUDIT POLICY ステートメント、および AUDIT ステートメントは、SECADM 権限を持つユーザーで実行してください。
  1. 監査ポリシーの作成
    $ db2 connect to sample
    
       データベース接続情報
    
     データベース・サーバー                                   = DB2/AIX64 9.7.9
     SQL 許可 ID                                              = DB2INST
     ローカル・データベース別名                               = SAMPLE
    
    $ db2 "CREATE AUDIT POLICY EXECPOL CATEGORIES EXECUTE WITH DATA STATUS BOTH ERROR TYPE NORMAL"
    DB20000I  SQL コマンドが正常に完了しました。
  2. ユーザーに対する監査ポリシーの設定、データベース・レベルの監査の開始
    $ db2 "AUDIT USER APPLUSER USING POLICY EXECPOL"
    DB20000I  SQL コマンドが正常に完了しました。
  3. 監査レコードの監査バッファーから監査ログへの書き出し
    $ db2audit flush
    
    AUD0000I  操作が成功しました。
  4. 監査ログのアーカイブ
    $ db2audit archive database sample
    
    ノード   AUD      アーカイブされたまたは一時的なログ・ファイル
             メッセージ
    -------- -------- ---------------------------------------------------
           0 AUD0000I db2audit.db.SAMPLE.log.0.20141111142538
    
    AUD0000I  操作が成功しました。
  5. 監査レコードの抽出
    $ db2audit extract file audit.out from files db2audit.db.SAMPLE.log.0.20141111142538
    
    AUD0000I  操作が成功しました。
  6. 監査の停止
    $ db2 "AUDIT USER APPLUSER REMOVE POLICY"
    DB20000I  SQL コマンドが正常に完了しました。
    注: データベースを非活動化してもデータベース・レベルの監査は停止します。

(出力例)
timestamp=2014-11-11-14.25.34.796131;
  category=EXECUTE;
  audit event=STATEMENT;
  event correlator=5;
  event status=100;
  database=SAMPLE;
  userid=appluser;
  authid=APPLUSER;
  session authid=APPLUSER;
  origin node=0;
  coordinator node=0;
  application id=127.0.0.1.41177.141111052534;
  application name=db2jcc_application;
  client workstation name=XXXXX.ibm.com;
  package schema=DB2INST;
  package name=SYSSH200;
  package section=1;
  local transaction id=0x00000000000019c1;
  global transaction id=0x0000000000000000000000000000000000000000;
  uow id=1;
  activity id=1;
  statement invocation id=0;
  statement nesting level=0;
  activity type=READ_DML;
  statement text=SELECT * FROM DB2INST.ORG WHERE DIVISION=?;
  statement isolation level=CS;
  Compilation Environment Description
    isolation: CS
    query optimization: 5
    min dec div 3: NO
    degree: 1
    SQL rules: DB2
    refresh age: +00000000000000.000000
    resolution timestamp: 2014-11-11-14.25.34.000000
    federated asynchrony: 0
    maintained table type: SYSTEM;
  rows modified=0;
  rows returned=2;
  value index = 1
    type = VARCHAR
    data = Eastern;


運用上の考慮点
  • V9.5 ではインスタンス・オーナーはデフォルトで SECADM 権限を保持していません。SYSADM 権限を持つユーザーからいずれかのユーザーに SECADM 権限を付与する必要があります。
  • V9.7 も V9.5 と同様にインスタンス・オーナーはデフォルトで SECADM 権限を保持していませんが、SECADM 権限の付与は SECADM 権限を持つユーザーのみが実行可能です。
  • V9.7 以降で作成されたデータベースはデータベース作成者に SECADM 権限が与えられます。V9.7 にマイグレーションされたデータベースは UPGRADE DATABASE コマンドの実行ユーザーに SECADM 権限が与えられます。
  • 接続の過程で発生する CONNECT および AUTHENTICATION イベントについては、データベースがアクティブになるまで、インスタンス・レベルの監査設定が使用されます。
    詳細はマニュアルの「監査ポリシー」ページを参照してください。

関連情報
パスポート・アドバンテージによく寄せられる質問
Db2 監査機能の紹介
db2audit - 監査機能管理者用ツール
CREATE AUDIT POLICY ステートメント
AUDIT ステートメント
Redbooks - DB2 Security and Compliance Solutions for Linux, UNIX, and Windows

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PmlAAE","label":"Security and Plug-Ins-\u003EAudit"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1.0;10.5.0;11.1.0;11.5.0;9.5.0;9.7.0"}]

Historical Number

B013CCDE3105803C492577FF001625CE

Document Information

Modified date:
15 August 2023

UID

jpn1J1006469