Question & Answer
Question
DB2 の監査機能によって、インスタンスやデータベースに対する操作を監査ログに記録できますが、簡単な設定方法の例を教えてください。
Answer
V9.5 で監査の機能が変更され、データベース・レベルの監査が行えるようになりました。
この文書ではインスタンス・レベルの監査の設定方法と、V9.5 以降で利用可能なデータベース・レベルの監査の設定方法について説明します。
[事前準備: 監査ログのパスの設定]
DB2 V9.5 以降で監査を開始するためには、アクティブな監査ログおよびアーカイブされた監査ログを書き込むパスが必要となります。
この例ではアクティブな監査ログのパスは /db2audit/active/ に、アーカイブされた監査ログのパスは /db2audit/archive/ に設定します。
[インスタンス・レベルの監査の設定方法]
以下はインスタンス・レベルで接続ユーザーの監査を行うために VALIDATE カテゴリーを監査するように設定する例です。
注: db2audit コマンドは SYSADM 権限を持つユーザーで実行してください。
[データベース・レベルの監査の設定方法]
DB2 V9.5 以降、データベース・レベルでの監査が可能となり、より詳細に監査の対象を設定することが可能です。
以下は SAMPLE データベースで APPLUSER による SQL ステートメントの実行を監査するために、APPLUSER に対してEXECUTE カテゴリーを監査するように設定する例です。
注1: db2audit コマンドは SYSADM 権限を持つユーザーで実行してください。
注2: CREATE AUDIT POLICY ステートメント、および AUDIT ステートメントは、SECADM 権限を持つユーザーで実行してください。
(出力例)
運用上の考慮点
関連情報
パスポート・アドバンテージによく寄せられる質問
Db2 監査機能の紹介
db2audit - 監査機能管理者用ツール
CREATE AUDIT POLICY ステートメント
AUDIT ステートメント
Redbooks - DB2 Security and Compliance Solutions for Linux, UNIX, and Windows
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート
この文書ではインスタンス・レベルの監査の設定方法と、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 権限を持つユーザーで実行してください。
- 監査設定の変更
$ db2audit configure scope validate status both AUD0000I 操作が成功しました。 $ db2audit describe DB2 監査設定: 監査がアクティブ: "FALSE " 監査イベントのログ: "FAILURE" チェック・イベントのログ: "FAILURE" オブジェクト保守イベントのログ: "FAILURE" セキュリティー保守イベントのログ: "FAILURE" システム管理者イベントのログ: "FAILURE" 妥当性検査イベントのログ: "BOTH" コンテキスト・イベントのログ: "NONE" 次の監査エラーで SQLCA を戻す: "FALSE " 監査データ・パス: "" 監査アーカイブ・パス: "" AUD0000I 操作が成功しました。
- 監査の開始
$ db2audit start AUD0000I 操作が成功しました。
- 監査レコードの監査バッファーから監査ログへの書き出し
$ db2audit flush AUD0000I 操作が成功しました。
- 監査レコードの抽出 (以下の例では 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 操作が成功しました。
- 監査の停止
$ db2audit stop AUD0000I 操作が成功しました。
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 権限を持つユーザーで実行してください。
- 監査ポリシーの作成
$ 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 コマンドが正常に完了しました。
- ユーザーに対する監査ポリシーの設定、データベース・レベルの監査の開始
$ db2 "AUDIT USER APPLUSER USING POLICY EXECPOL" DB20000I SQL コマンドが正常に完了しました。
- 監査レコードの監査バッファーから監査ログへの書き出し
$ db2audit flush AUD0000I 操作が成功しました。
- 監査ログのアーカイブ
$ db2audit archive database sample ノード AUD アーカイブされたまたは一時的なログ・ファイル メッセージ -------- -------- --------------------------------------------------- 0 AUD0000I db2audit.db.SAMPLE.log.0.20141111142538 AUD0000I 操作が成功しました。
- 監査レコードの抽出
$ db2audit extract file audit.out from files db2audit.db.SAMPLE.log.0.20141111142538 AUD0000I 操作が成功しました。
- 監査の停止
$ 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
Was this topic helpful?
Document Information
Modified date:
15 August 2023
UID
jpn1J1006469