監査の詳細

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:6分
  • 監査が有効にされたテーブルのレコードの変更を追跡します。デフォルトでは、インシデントテーブル、変更テーブル、および問題テーブルなどに対して行われた変更が追跡されます。

    監査を有効にすると、テーブル内のすべてのレコードの作成、更新、および削除が追跡されます。テーブル内の個々のフィールドを監査する場合は、辞書属性を使用して追跡しないフィールドを非表示にすることができます。

    監査情報は次のテーブルに保持されます。
    警告:
    ワークフローコンテキスト [wf_context] やイベント管理アラート [em_alert] などの大量のトラフィックを受信するシステムテーブルの監査では、パフォーマンスに影響を与える可能性があります。そのため、em_alert テーブル全体を監査することはできません。代わりに、次の方法で選択した対象フィールドを監査します。em_alert テーブルと選択したフィールドの両方で audit=true を設定します。監査するフィールドはできる限り少なくしてください。

    親テーブルと子テーブルの監査

    テーブルは、親または子の監査対象テーブルから監査フラグを取得しません。
    • たとえば、構成アイテム [cmdb_ci] テーブルの監査を有効にすると、そのベーステーブルに格納されている CI のみが監査されます。
    • 同様に、コンピューター [cmdb_ci_computer] テーブルの監査を有効にすると、構成アイテム [cmdb_ci] テーブルから派生したコンピューター [cmdb_ci_computer] テーブルのフィールドを含む、コンピューターの CI レコードのみが監査されます。

    監査システムテーブル

    デフォルトでは、システムテーブルからのレコードの削除は監査されません。システムテーブルを監査するには、glide.ui.audit_deleted_tables プロパティリスト内のテーブルのリストにそのシステムテーブルを追加します。

    フォームまたはリストからの削除の監査

    デフォルトでは、フォームから個々のレコードの削除が監査されます。監査されないようにするには、テーブルの辞書属性 no_audit_delete を設定します。

    テーブル辞書で監査が選択されており、テーブルが glide.db.audit.ignore.delete プロパティにリストされていない場合、リストからの削除が監査されます。
    注:
    デフォルトでは、この glide.db.audit.ignore.delete プロパティはシステムプロパティ [sys_properties] テーブルにありません。プロパティとその関連付けられた値を変更するには、まず手動で追加する必要があります。ただし、手動で追加すると、次のデフォルト値が上書きされます。

    glide.db.audit.ignore.delete = sys_mutex,sys_db_cache,sys_lucene_block,sys_lucene_file,sys_lucene_directory,sys_user_preference,sys_audit,sc_cart,sc_cart_item,sys_trigger,wf_context,wf_activity,wf_condition,wf_executing,wf_history,wf_log,wf_transition,wf_transition_history, cmdb_ci_windows_service, cmdb_sam_sw_install, cmdb_software_instance, cmdb_sam_sw_usage, sam_sw_counter_detail

    システムプロパティの追加の詳細については、「システムプロパティを追加する」を参照してください。

    デフォルトでは、フォームビュー、リストビュー、またはスクリプト/スケジュール済みジョブのどれを使用してレコードが削除されたかどうかに関係なく、削除の監査が有効になることに注意してください。

    監査された情報

    監査では次のレコードの変更を追跡します。
    • 変更されたレコードの一意のレコード識別子 (sys_id)
    • 変更されたフィールド
    • 新しいフィールド値
    • 以前のフィールド値
    • このレコードとフィールドが更新された回数
    • 変更された日時
    • 変更を加えたユーザー
    • 変更理由 (変更と関連する理由がある場合)
    • レコードに複数のバージョンがある場合、レコードの内部チェックポイント ID。

    監査から除外される情報

    テーブルの監査を有効にしていても、一部の更新は監査されません。レコードの履歴には 132 件の更新が表示されますが、監査された更新が 7 件のみであるのはそのためです。
    監査では、次の情報が除外されます。
    • アップグレードによる更新。
    • インポートセットによる更新。
    • 親または子テーブルのレコード。
    • no_audit 辞書属性を持つフィールド。
    • glide.ui.audit_deleted_tables プロパティリストにリストされていないシステムテーブル。
    • sys_class_name 列と sys_domain_id 列を除く sys_ prefix (システムフィールド) で始まるフィールド。
    • UI ページは、監査ログを作成せずにレコードの更新をトリガーすることがあります。
    • 滞留アクティビティモニターがレコードに接触したとき。これにより、有用なデータに干渉するノイズが生じて、インシデントに対してリストにされる何百もの更新が表示されなくなります。
    • パフォーマンスアナリティクス スコアの手動変更。

    テーブルの監査

    テーブルの監査方法の手順については、「テーブルの監査の構成」を参照してください。
    デフォルトでは、監査対象テーブルのすべてのフィールドが追跡されます。次の 2 つの方法のいずれかで、テーブル内のフィールドのサブセットを監査できます。
    • テーブル全体の監査を有効にしてから、含めないフィールドを除外することができます。この方法は、すべてではないがほとんどのフィールドを監査する場合に適しており、除外リストと呼ばれます。詳細については、「フィールドの監査対象からの除外 (除外リスト)」を参照してください。
    • 指定されたフィールドに対してのみ、テーブルの監査を有効にすることもできます。この方法は、少数のテーブルのフィールドのみ監査する場合に適しており、包含リストと呼ばれます。包含リストを使用してフィールドを含める方法の詳細については、「監査にテーブルフィールドを含める (包含リスト)」を参照してください。

    キャンセル不可能な監査レコード

    新しいデフォルト設定でトランザクションがキャンセルされたときに監査レコードが記録されない可能性を減らします。

    ターゲットレコードの書き込み操作と同じトランザクションですぐにレコードを作成するように監査が設定されています。ターゲットレコードが削除されても、監査は NCA テスト監査削除モジュールで作成および保持されます。
    注:
    拡張監査プロセスはデフォルトで有効になっています。glide.db.audit.lazy プロパティが True に設定されている場合、拡張監査プロセスは無効になります。
    Xanadu リリース以前では、トランザクションがキャンセルされると、特定の監査可能な操作が記録されませんでした。これは、レコードの変更の間にプラットフォームが何らかの操作を実行し、監査の作成前にキャンセルされるためです。しかし現在では、レコードが変更された直後に監査が作成されるため、キャンセルされたトランザクションによって、監査が記録される前に操作が中止される可能性が低くなります。
    監査は、トランザクションと同じスレッドに記録されるようになりました。以前の監査はバックグラウンドスレッドで作成されていました。この変更により、 glide.db.audit.lazy プロパティのデフォルト値が True から False に再定義されます。このプロパティは通常、プロパティテーブルで定義されていません。大半のインスタンスで新しいデフォルト値と動作の使用が開始されるからです。インスタンスによっては、このプロパティがすでに存在し、True に設定されている可能性があります。これは、これらのインスタンスがこの変更を使用して動作を監査できないことを意味します。
    注:
    更新を利用するには、このプロパティを削除することをお勧めします。