監査データを格納する Identity Manager リポジトリには、次の 2 つのテーブルがあります。
waveset.log– イベントの詳細のほとんどを格納します。
waveset.logattr– 各イベントが属する組織の ID を格納します。
これらのテーブルについてはこの節で説明します。
監査ログデータがこれらのテーブルに指定された列の長さ制限を超えると、Identity Manager は 制限に合わせてデータを切り捨てます。監査ログの切り捨てについては、「監査ログの切り捨て」を参照してください。
監査ログには、列の長さ制限を変更できる列がいくつかあります。これらの列の詳細と、長さ制限を変更する方法については、「監査ログ設定」を参照してください。
この節では、waveset.log テーブルで使用される列名とデータ型を説明します。データ型は、Oracle データベース定義から取得され、データベースごとに異なります。サポートされるすべてのデータベースのデータスキーマ値の一覧については、付録 B 監査ログデータベーススキーマを参照してください。
いくつかの列値は、領域を最適化するために、キーとしてデータベースに格納されます。キーの定義については、「監査ログデータベースマッピング」を参照してください。
objectType CHAR(2) – 監査されているオブジェクトタイプを表す 2 文字のキー。
action CHAR(2) – 実行されたアクションを表す 2 文字のキー。
actionStatus CHAR(1) – 実行されたアクションの結果を表す 1 文字のキー。
reason CHAR(2) – 障害が発生した場合に、ReasonDenied オブジェクトを記述するための 2 文字のデータベースキー。ReasonDenied は、メッセージカタログエントリをラップするクラスで、無効な資格や不十分な特権などの一般的なエラーに使用されます。
actionDateTimeVARCHAR(21) – 上記のアクションが実行された日時。この値はグリニッジ標準時で格納されます。
objectName VARCHAR(128) – 操作中に影響を受けたオブジェクトの名前。
resourceName VARCHAR(128) – 操作中に使用されたリソース名 (該当する場合)。リソースを参照しないイベントもありますが、多くの場合、操作の実行で使用したリソースをログすると、より詳しい詳細が得られます。
accountName VARCHAR(255) – 影響を受けているアカウント ID (該当する場合)。
server VARCHAR(128) – アクションが実行される (イベントロガーによって自動的に割り当てられた) サーバー。
message VARCHAR(255*) または CLOB – エラーメッセージなど、アクションに関連するローカライズされたメッセージ。テキストはローカライズして格納されます。 したがって国際化されません。この列の長さ制限は設定可能です。デフォルトのデータ型は VARCHAR で、デフォルトのサイズ制限は 255 文字です。サイズ制限を調整する方法については、「監査ログ設定」を参照してください。
interface VARCHAR(50) – 操作が実行された Identity Manager インタフェース (管理者、ユーザー、IVR、SOAP などのインタフェース)。
acctAttrChanges VARCHAR(4000) または CLOB – 作成および更新中に変更されたアカウント属性を格納します。属性変更フィールドは常に、リソースアカウントまたは Identity Manager アカウントオブジェクトの作成または更新中に設定されます。アクション中に変更されたすべての属性は、文字列としてこのフィールドに格納されます。データは NAME=VALUE NAME2=VALUE2 の形式です。このフィールドは、名前または値に対して contains SQL 文を実行して問い合わせることができます。
次のコード例は、acctAttrChanges 列の値を示しています。
COMPANY="COMPANY" DEPARTMENT="DEPT" DESCRIPTION="DSMITH DESCRIPTION" FAX NUMBER="5122222222" HOME ADDRESS="12282 MOCKINGBIRD LANE" HOME CITY="AUSTIN" HOME PHONE="5122495555" HOME STATE="TX" HOME ZIP="78729" JOB TITLE="DEVELOPER" MOBILE PHONE="5125551212" WORK PHONE="5126855555" EMAIL="someone@somecompany.COM" EXPIREPASSWORD="TRUE" FIRSTNAME="DANIEL" FULLNAME="DANIEL SMITH" LASTNAME="SMITH" |
Identity Manager のインストールで Oracle リポジトリを使用しているときに、監査ログに切り捨てエラーが見つかった場合は、監査ログテーブルの accountAttrChanges フィールドを VARCHAR(4000) から CLOB に変換できます。Identity Manager には、/web/sample ディレクトリにサンプルの DDL スクリプトが用意されています。このスクリプトは、log.acctAttrChanges を VARCHAR(4000) から CLOB に変換します。convert_log_acctAttrChangesCHAR2CLOB.oracle.sql スクリプトは、既存のデータを保存し、4000 文字を超える accountAttrChanges フィールドを読み取ることができます。
この変換はオプションです。切り捨てエラーに気付いたときにだけ実行してください。また、変換スクリプトを実行する前に、影響を受けるテーブルを必ずバックアップしてください。
変換スクリプトを実行したあとに、Web アプリケーションサーバーを停止し、再起動してください。新しいレポートを実行したときに、正しく表示されます。
acctAttr01label-acctAttr05label VARCHAR(50) – これらの 5 つの追加 NAME スロットは、最大 5 つの属性名を、大きな塊 (ブロブ) ではなく独立した列に格納されるように格上げできる列です。「リソーススキーマの設定」ページで "audit?" 設定を使用して、属性を格上げできます。これにより、属性をデータマイニングに利用できます。
acctAttr01value-acctAttr05value VARCHAR(128) – ブロブではなく、個別の列に格納されるように最大 5 つの属性値を格上げできる 5 つの追加 VALUE スロット。
parm01label-parm05label VARCHAR(50) – イベントに関連するパラメータの格納に使用される 5 つのスロット。例として、Client IP 名と Session ID 名があります。
parm01value-parm05value VARCHAR(128*) または CLOB – イベントに関連するパラメータの格納に使用される 5 つのスロット。例として、Client IP 値と Session ID 値があります。これらの列の長さ制限は設定可能です。デフォルトのデータ型は VARCHAR で、デフォルトのサイズ制限は 128 文字です。サイズ制限を調整する方法については、「監査ログ設定」を参照してください。
id VARCHAR(50) – waveset.logattr テーブルで参照されるリポジトリによって各レコードに割り当てられた一意の ID。
name VARCHAR(128) – 各レコードに割り当てられた生成名。
xml BLOB – Identity Manager で内部的に使用されます。
waveset.logattr テーブルは、イベントごとに組織のメンバーシップの ID を格納するために使用されます。 このテーブルを使用して、組織別に監査ログの範囲が設定されます。
id VARCHAR(50) – waveset.log レコードの ID。
attrname VARCHAR(50) – 現在は、常に MEMBEROBJECTGROUPS です。
attrval VARCHAR(255) – イベントが属する MemberObject グループの ID。
監査ログデータの 1 つ以上の列が、指定した列の長さ制限を超えると、その列のデータは制限内になるように切り捨てられます。具体的には、切り捨て後のデータは指定された制限値より 3 文字短くなります。次に列データに省略記号 (...) が付加され、データが切り捨てられたことを示します。
さらに、切り捨てられたレコードを見つけやすいように、その監査レコードの NAME 列の先頭に #TRUNCATED# という文字列が付加されます。
Identity Manager では、UTF–8 エンコーディングを想定して、メッセージを切り捨てる位置を計算します。UTF–8 以外のエンコーディングを使用する設定では、切り捨て後のデータがデータベース内の実際の列サイズをまだ超過する可能性があります。こうした状態が発生すると、切り捨て後のメッセージは監査ログに表示されず、エラーがシステムログに出力されます。