日本語PDF

A Oracle Database Vaultの監査

ポリシー構成への変更など、Oracle Database Vaultのアクティビティを監査できます。

A.1 Oracle Database Vaultでの監査について

Oracle Database Vaultのすべてのアクティビティは、Database Vault Administratorのアクティビティを含めて監査できます。

オプションで、レルム、ルール・セットおよびファクタに作成する個別のポリシーを監査できます。監査は、ユーザーのアクションの成功(ポリシーによってユーザーがタスクを実現できたかどうか)、またはユーザーのアクションの失敗(ポリシー違反したかどうか)のいずれかを示します。このようなアクションは監査ログに書き込まれます。この内容を確認するには、適切なデータ・ディクショナリ・ビューを問い合せるか、「Oracle Database Vaultレポート」に記載されているレポートを実行します。

Database Vaultへのすべての構成変更については監査が必須となっており、これには、権限が与えられていないユーザーによってDatabase Vaultポリシーの変更が試行されるアクションが含まれます。

新しいデータベースをインストールして、Oracle Database Vaultを使用するようにそのデータベースを構成する場合、デフォルトで混合モード環境(統合監査と事前移行済監査の混合)が使用されます。以前のリリースからアップグレードした場合、Database Vaultは、そのリリースで使用できた監査を使用します。

完全な統合監査環境に移行する前に、監査ポリシーを次のように作成できます。

  • Database VaultのAPIの使用: DBMS_MACADM PL/SQLパッケージまたはEnterprise ManagerのDatabase Vaultページを使用します。この場合、監査レコードはDatabase Vault監査証跡に書き込まれます。この証跡は、DVSYS.AUDIT_TRAIL$表に格納されます。これらの監査レコードについて、DVSYS.DV$CONFIGURATION_AUDITビューとDVSYS.DV$ENFORCEMENT_AUDITビューに問い合せることができます。

  • 統合監査ポリシーのSQL文の使用: これらの文は、CREATE AUDIT POLICYALTER AUDIT POLICYDROP AUDIT POLICYAUDITおよびNO AUDIT文です。これらは統合監査証跡に書き込まれます。この証跡は、UNIFIED_AUDIT_TRAILAUDSYS.DV$CONFIGURATION_AUDITおよびAUDSYS.DV$ENFORCEMENT_AUDITデータ・ディクショナリ・ビューで取得されます。

統合監査に移行する場合、Database VaultのAPIの監査機能は、無効となります。「Oracle Database Vault監査証跡のアーカイブおよびパージ」の説明に従い、これらの監査レコードをアーカイブおよびパージする必要があります。それ以降、統合監査ポリシーのPL/SQL文によってDatabase Vault監査ポリシーを管理できます。

記述した内容を除き、この章の残りの項では、Database Vault監査の非統合または混合モードの監査環境での動作について説明します。

関連項目:

A.2 Oracle Database Vault環境での統合監査証跡の保護

デフォルトでは、統合監査証跡を含むAUDSYSスキーマはレルムで保護されません。

統合監査証跡をより適切に保護するために、次のことを実行することをお薦めします。

  • AUDSYSスキーマの周囲に通常の(必須でない)レルムを作成し、認可されたユーザー(AUDIT_ADMINおよびAUDIT_VIEWERロールを付与されているユーザー)のみが統合監査証跡ビューを問い合せ、DBMS_AUDIT_MGMT PL/SQLパッケージを使用して監査証跡を管理できるようにします。このレルムは、SYSを含む多くの権限を持つユーザーが、そのレルムの認可リストに追加されるまでこれらのアクションを実行できないようにします。
  • CREATE AUDIT POLICYALTER AUDIT POLICYおよびDROP AUDIT POLICY SQL文のコマンド・ルールを作成し、認可されたユーザーのみがこれらの文を実行できるようにします。

A.3 Oracle Database Vault固有の監査イベント

Oracle Database Vaultの監査イベントは、レルムで試行されたアクションが成功したかどうかなど、アクティビティを追跡します。

A.3.1 Oracle Database Vaultポリシーの監査イベント

Oracle Database Vaultでは、監査イベントを使用して構成アクティビティを追跡します。

これらのアクティビティは、次のとおりです。

  • レルムの監査。レルムの作成時に設定した監査オプションに基づいて、正常終了したアクションおよび失敗したアクションの両方を監査できます。ただし、スキーマ所有者によって実行されたアクションは監査できません。

  • ルール・セットの監査。ルール・セットの処理結果を監査します。正常終了した処理および失敗した処理の両方を監査できます。レルム認可は、ルール・セットを使用して管理できます。ルール・セットの処理結果を監査できます。ファクタ割当ておよびセキュア・アプリケーション・ロール監査は、ルール・セットを使用して管理できます。

  • ファクタの監査。正常終了したファクタ処理および失敗したファクタ処理の両方を監査できます。失敗したファクタ処理の場合、「取得エラー」、「取得がNULL」、「検証エラー」、「検証がFalse」、「信頼レベルがNULL」、「信頼レベルがゼロ未満」のすべてまたはいずれかについて監査できます。

  • Oracle Label Securityセッション初期化の失敗。Oracle Label Securityセッションの初期化に失敗したインスタンスを監査します。

  • Oracle Label Securityセッション・ラベル・アップグレード試行の失敗。Oracle Label Securityコンポーネントによって最大セッション・ラベルを超えるラベルの設定が妨げられているセッションのインスタンスを監査します。

A.3.2 Oracle Database Vault監査証跡レコードの書式

統合監査を使用しない場合、Oracle Database Vaultは、監査レコードをDVSYS.AUDIT_TRAIL$表に書き込みます。

これらの監査レコードはOracle Database Vault監査証跡の一部ではないため、データベースで監査がどのように有効になっても、Oracle Database VaultがDVSYS.AUDIT_TRAIL$表から監査データをどのように収集するかには影響しません。実際には、Oracle Databaseで監査が無効になっている場合でも、Oracle Database Vaultの監査機能はDVSYS.AUDIT_TRAIL$表への書込みを続けます。

DV_OWNERDV_ADMINDV_SECANALYSTまたはDV_MONITORロールが付与されているユーザーは、DVYS.AUDIT_TRAIL$表に直接問い合せることができます。

表A-1では、監査証跡の書式を説明しています。DVSYS.AUDIT_TRAIL$表を使用するカスタム・レポートの作成を予定している場合、これらの書式を理解する必要があります。

表A-1 Oracle Database Vault監査証跡の書式

データ型 Null 説明

ID#

NUMBER

NOT NULL

監査レコードごとの数値識別子。

OS_USERNAME

VARCHAR2(255)

NULL

アクションが監査対象となったユーザーのオペレーティング・システムのログイン・ユーザー名。

USERNAME

VARCHAR2(30)

NULL

アクションが監査対象となったデータベース・ユーザーの名前。

USERHOST

VARCHAR2(128)

NULL

クライアント・コンピュータ名。

TERMINAL

VARCHAR2(255)

NULL

ユーザーの端末に対する識別子。

TIMESTAMP

DATE

NULL

監査証跡エントリの作成日時(ローカル・データベース・セッションのタイムゾーン)。

OWNER

VARCHAR2(30)

NULL

アクションの影響を受けるオブジェクトの作成者、常時DVSYS(DVSYSでオブジェクトが作成されるため)

OBJ_NAME

VARCHAR2(128)

NULL

アクションの影響を受けるオブジェクトの名前。想定値は次のとおりです。

  • ROLE$

  • REALM$

  • CODE$

  • FACTOR$

ACTION

NUMBER

NOT NULL

数値のアクション・タイプ・コード。アクション・タイプに対応する名前は、ACTION_NAME列に示されます。予想されるACTIONACTION_NAMEの値のリストについては、表24-3を参照してください。

ACTION_NAME

VARCHAR2(128)

NULL

ACTION列の数値コードに対応するアクション・タイプの名前

ACTION_OBJECT_ID

NUMBER

NULL

OBJ_NAMEに指定された表のレコードの一意の識別子。レルムの場合、このフィールドには、「失敗時に監査」監査オプションのあるすべてのレルムIDのカンマ区切りの値のリストが含まれます。

ACTION_OBJECT_NAME

VARCHAR2(128)

NULL

OBJ_NAMEに指定された表のレコードの一意の名前または固有のキー。レルムの場合、このフィールドには、「失敗時に監査」監査オプションのあるすべてのレルム名のカンマ区切りの値のリストが含まれます。

ACTION_COMMAND

VARCHAR2(4000)

NULL

実行された結果、監査イベントがトリガーされたコマンド・プロシージャのSQLテキスト。

AUDIT_OPTION

VARCHAR2(4000)

NULL

結果として監査イベントがトリガーされたレコードに指定されたすべての監査オプションのラベル。たとえば、失敗またはNULLになったときに監査することになっているファクタ設定操作では、これら2つのオプションを指します。

RULE_SET_ID

NUMBER

NULL

実行された結果、監査イベントがトリガーされたルール・セットの一意の識別子。

RULE_SET_NAME

VARCHAR2(30)

NULL

実行された結果、監査イベントがトリガーされたルール・セットの一意の名前。

RULE_ID

NUMBER

NULL

使用されていません。

RULE_NAME

VARCHAR2(30)

NULL

使用されていません。

FACTOR_CONTEXT

VARCHAR2(4000)

NULL

監査イベントがトリガーされた時点での、現行セッションに対するすべてのファクタ識別子を含むXML文書。

COMMENT_TEXT

VARCHAR2(4000)

NULL

監査対象となった文の詳細を示す、監査証跡エントリについてのテキスト・コメント。

SESSIONID

NUMBER

NOT NULL

Oracleセッションごとの数値識別子。

ENTRYID

NUMBER

NOT NULL

ID#列の値と同じ。

STATEMENTID

NUMBER

NOT NULL

起動された結果、監査イベントが生成された文の数値識別子。ほとんどのOracle Database Vaultイベントの場合、このパラメータは空です。

RETURNCODE

NUMBER

NOT NULL

アクションによって生成されたOracleエラー・コード。起動された結果、監査イベントが生成された文またはプロシージャに対するエラー・コード。ほとんどのOracle Database Vaultイベントの場合、このパラメータは空です。

EXTENDED_TIMESTAMP

TIMESTAMP(6)WITH TIME ZONE

NULL

UTC(協定世界時)タイムゾーンの、監査証跡エントリの作成時のタイムスタンプ(エントリに対するユーザー・ログインのタイムスタンプ)。

PROXY_SESSIONID

NUMBER

NULL

エンタープライズ・ユーザーがプロキシ機構を介してログインした場合の、プロキシ・セッションのシリアル番号

GLOBAL_UID

VARCHAR2(32)

NULL

ユーザーがエンタープライズ・ユーザーとしてログインした場合の、ユーザーのグローバル・ユーザー識別子。

INSTANCE_NUMBER

NUMBER

NULL

INSTANCE_NUMBER初期化パラメータによって指定されるインスタンス番号

OS_PROCESS

VARCHAR2(16)

NULL

Oracleプロセスのオペレーティング・システム・プロセス識別子

CREATED_BY

VARCHAR2(30)

NULL

アクションが監査対象となったユーザーのデータベースのログイン・ユーザー名。

CREATE_DATE

DATE

NULL

SYSDATEの日付を基にした、アクションが発生した日付。

UPDATED_BY

VARCHAR2(30)

NULL

CREATED_BY列の値と同じ。

UPDATE_DATE

DATE

NULL

UPDATED_BY列の値と同じ。

A.4 Oracle Database Vault監査証跡のアーカイブおよびパージ

統合監査に移行していない場合、Oracle Database Vault監査証跡を定期的にアーカイブおよびパージする必要があります。

A.4.1 Oracle Database Vault監査証跡のアーカイブおよびパージについて

非統合監査環境では、DVSYS.AUDIT_TRAIL$表をダンプ・ファイルにエクスポートすることで、Oracle Database Vault監査証跡をアーカイブできます。

監査証跡は、大きくなりすぎないように定期的にアーカイブし、パージする必要があります。

統合監査に移行するように選択する場合、移行の完了後、このプロシージャを使用してDatabase Vault監査証跡レコードをアーカイブおよびパージします。統合監査がレコードの収集を開始すると、新しいレコードは、UNIFIED_AUDIT_TRAILAUDSYS.DV$CONFIGURATION_AUDITおよびAUDSYS.DV$ENFORCEMENT_AUDITデータ・ディクショナリ・ビューの表示に使用できるようになります。

A.4.2 Oracle Database Vault監査証跡のアーカイブ

SQL*PlusおよびOracle Data Pumpを使用すると、Oracle Database Vault監査証跡をアーカイブできます。

  1. SYSDBA管理権限を持つユーザーSYSとして、データベース・インスタンスにログインします。

    sqlplus sys as sysdba
    Enter password: password
    
  2. アーカイブを実行するユーザーに適切な権限があることを確認します。

    たとえば:

    GRANT CREATE ANY DIRECTORY, EXP_FULL_DATABASE, UNLIMITED TABLESPACE TO psmith;
    
  3. DV_OWNERまたはDV_AUDIT_CLEANUPロールを付与されているユーザーとして接続します。

    たとえば:

    connect ebrown
    Enter password: password
    
  4. Oracle Database Vault監査証跡を、該当するスキーマの新しい表にアーカイブします。

    たとえば:

    CREATE TABLE psmith.dv_audit_trail nologging \
    AS SELECT * FROM DVSYS.AUDIT_TRAIL$;
    
  5. スキーマがレルムによってすでに保護されている場合、担当者またはエクスポート操作を実行するユーザーに、Database Vault環境でOracle Data Pumpを使用する適切な認可が付与されていることを確認します。

    たとえば、ユーザーpsmithがそのスキーマに対してData Pump操作を実行できるように、このユーザーを認可するとします。

    EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('PSMITH', 'PSMITH');
    
  6. Data Pumpユーザーとして接続します。

    たとえば:

    CONNECT psmith
    Enter password: password
    
  7. Database Vault監査証跡用のディレクトリを作成します。

    CREATE DIRECTORY dv_audit_dir AS 'dv_audit_trail_directory';
    
  8. SQL*Plusを終了します。

    EXIT
    
  9. Data Pumpを使用して、Database Vault監査証跡を、作成したディレクトリ・オブジェクトにエクスポートします。

    expdp psmith directory=dv_audit_dir tables=psmith.dv_audit_trail \
    dumpfile=dv_audit.dmp log=dv_audit_exp.log
    
  10. DV_OWNERロールを付与されているユーザーとしてSQL*Plusに接続します。

    sqlplus ebrown
    Enter password: password
    
  11. このようにしなかった場合、Database Vault監査証跡を含むスキーマの周辺にレルムを作成します。

    1. レルムを作成します。たとえば:

      BEGIN
       DBMS_MACADM.CREATE_REALM(
        realm_name    => 'DV Audit Trail Realm', 
        description   => 'Realm to protect the DV audit trail', 
        enabled       => DBMS_MACUTL.G_YES, 
        audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL + DBMS_MACUTL.G_REALM_AUDIT_SUCCESS,
        realm_type    => 1);
      END; 
      /
      
    2. 監査証跡を含むスキーマをこのレルムに追加します。たとえば:

      BEGIN
       DBMS_MACADM.ADD_OBJECT_TO_REALM(
        realm_name   => 'DV Audit Trail Realm', 
        object_owner => 'psmith', 
        object_name  => '%', 
        object_type  => '%'); 
      END;
      /
      
    3. このレルムに対して信頼されるユーザーを認可します。

      BEGIN
       DBMS_MACADM.ADD_AUTH_TO_REALM(
        realm_name  => 'DV Audit Trail Realm', 
        grantee     => 'PSMITH',
        auth_options => DBMS_MACUTL.G_REALM_AUTH_OWNER);
      END;
      /

関連項目:

A.4.3 Oracle Database Vault監査証跡のパージ

SQL*PlusでOracle Database Vault監査証跡をパージできます。

  1. DV_OWNERロールまたはDV_AUDIT_CLEANUPロールを付与されているユーザーとして、データベース・インスタンスにログインします。

    たとえば:

    sqlplus psmith
    Enter password: password
    

    DV_OWNERロールとDV_AUDIT_CLEANUPロールでは、その権限受領者はDVSYS.AUDIT_TRAIL$システム表を切り捨てることができない点に注意してください。

    ユーザーに付与されているロールを検索するには、DBA_ROLE_PRIVSデータ・ディクショナリ・ビューを問い合せることができます。

  2. Database Vault監査証跡をパージします。
    DELETE FROM DVSYS.AUDIT_TRAIL$;

A.5 Oracle Database Vault用に作成されるOracle Database監査設定

Oracle Database Vaultをインストールすると、データベース内に複数のAUDIT設定が作成されます。

非統合監査環境でこれらの監査設定を実施にするには、このデータベースで監査を有効にする必要があります。監査が有効かどうかは、SHOW PARAMETERコマンドを使用して、AUDIT_TRAIL初期化パラメータの値を検索することで確認できます。デフォルトでは、監査はOracle Databaseで有効になっています。

表A-2に、Oracle Database Vaultによりデータベースに追加されるAUDITの設定を示します。

表A-2 Oracle Database VaultによりOracle Databaseに追加される監査ポリシーの設定

監査設定タイプ 監査対象文(特に断りのない場合はBY ACCESSかつ成功時または失敗時)

DVSYS/DVFのユーザー監査設定

LBACSYSのユーザー監査設定

これらのアカウントの詳細は、表13-1を参照してください。

また、DVSYSスキーマおよびDVFスキーマの詳細は、次の項を参照してください。

ADMINISTER DATABASE TRIGGER

ALTERオブジェクト

AUDIT SYSTEM

BECOME USER

CLUSTER

COMMENT

CONTEXT

CREATEオブジェクト

DATABASE LINK

DEBUG

DIRECTORY

DROPオブジェクト

EXECUTE LIBRARY (WHENEVER NOT SUCCESSFUL)

EXECUTE PROCEDURE (WHENEVER NOT SUCCESSFUL)

EXEMPT ACCESS POLICY

EXPORT FULL DATABASE

GRANTオブジェクト

IMPORT FULL DATABASE

INDEX

MANAGE SCHEDULER

MANAGE TABLESPACE

MATERIALIZED VIEW(マテリアライズド・ビューへのアクセスと作成の両方を監査)

SELECT SEQUENCE (WHENEVER NOT SUCCESSFUL)

SELECT TABLE (WHENEVER NOT SUCCESSFUL)

DVFのオブジェクト監査設定

AUDIT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE

COMMENT TABLE/VIEW

DELETE TABLE/VIEW

EXECUTE PACKAGE/PROCEDURE/FUNCTION (WHENEVER NOT SUCCESSFUL)

GRANT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE

RENAME PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/VIEW/TABLE

SELECT SEQUENCE/TABLE/VIEW (WHENEVER NOT SUCCESSFUL)

DVSYSのオブジェクト監査設定

LBACSYSのオブジェクト監査設定

AUDIT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE

COMMENT TABLE/VIEW

DELETE TABLE/VIEW

EXECUTE PACKAGE/PROCEDURE/FUNCTION (WHENEVER NOT SUCCESSFUL)

GRANT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE

INSERT TABLE/VIEW

RENAME PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/VIEW/TABLE

SELECT SEQUENCE/TABLE/VIEW (WHENEVER NOT SUCCESSFUL)

UPDATE TABLE/VIEW