31 DBMS_AUDIT_MGMT
DBMS_AUDIT_MGMT
パッケージは、監査証跡レコードを管理するためのサブプログラムを提供します。監査管理者は、これらのサブプログラムを使用して監査証跡を管理できます。混合モード環境では、監査証跡はデータベース、オペレーティング・システム(OS)およびXMLの各監査証跡から構成されます。統合監査環境では、統合監査証跡から構成されます。
この章のトピックは、次のとおりです:
参照:
-
監査時のセキュリティ・アクセスの検証については、『Oracle Databaseセキュリティ・ガイド』を参照してください。
-
統合監査への移行については、『Oracle Databaseアップグレード・ガイド』を参照してください。
31.1 DBMS_AUDIT_MGMTの概要
データベース監査によって、データベースのセキュリティおよびコンプライアンスに関する要件を満たすことができます。混合モード環境では、監査レコードはAUDIT_TRAIL初期化パラメータの設定に応じて、データベース表、オペレーティング・システム(OS)ファイルまたはXMLファイルに書き込まれます。統合監査にアップグレードした場合は、監査レコードは統合監査証跡に書き込まれます。
ノート:
Oracle Database 23cでは、従来の監査はサポートされなくなりました。かわりに統合監査を使用することをお薦めします。現在の従来の監査設定は引き続き適用されますが、新たに従来の監査設定を作成することはできません。既存の従来の監査設定は削除できます。詳細は、Oracle Databaseセキュリティ・ガイドを参照してください。混合モード環境では、AUDIT_TRAIL
がDB
に設定されている場合、データベース・レコードはAUD$
表に書き込まれます。統合監査環境では、監査レコードはAUDSYS
スキーマ内の読取り専用表に書き込まれます。この表の内容は、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューで表示可能です。AUDIT_TRAIL
がOSに設定されると、監査レコードはオペレーティング・システム・ファイルに書き込まれます。AUDIT_TRAIL
がXMLに設定されている場合、監査レコードはオペレーティング・システム・ファイルにXML形式で書き込まれます。
統合監査ファシリティを使用すると、すべての監査レコードは共通形式で統合監査証跡に書き込まれます。これは、UNIFIED_AUDIT_TRAIL
ビューで表示可能です。
効率的な実行およびディスク領域管理を行うには、監査レコードを適切に管理することが重要です。DBMS_AUDIT_MGMT
サブプログラムを使用すると、監査証跡レコードを効率的に管理できます。
統合監査環境へ移行していないユーザーのために、DBMS_AUDIT_MGMT
パッケージでは、SYSTEM
表領域からデータベース監査証跡表を移動できるサブプログラムが提供されています。これにより、SYSTEM
表領域の負荷を減らすことで、データベース全体のパフォーマンスが向上します。また、最適化された表領域を監査レコード専用にすることもできます。
混合モード環境では、DBMS_AUDIT_MGMT
サブプログラムを使用して、オペレーティング・システムおよびXMLの監査ファイルを管理することもできます。監査ファイルの最大サイズ、経過時間などのプロパティを定義できます。これにより、OSおよびXML監査ファイルのファイル・サイズを抑えることができます。
DBMS_AUDIT_MGMT
サブプログラムを使用すると、すべての監査証跡タイプに対してクリーンアップ操作を実行できます。監査証跡は、最終アーカイブ・タイムスタンプの値に基づいて消去できます。最終アーカイブ・タイムスタンプは、安全にアーカイブされた最近の監査レコードのタイムスタンプを表します。
DBMS_AUDIT_MGMT
パッケージでは、監査管理者がアーカイブ済監査レコードに最終アーカイブ・タイムスタンプを設定できるサブプログラムが提供されています。このサブプログラムは、外部アーカイブ・システムで最終アーカイブ・タイムスタンプを設定する場合も使用できます。
DBMS_AUDIT_MGMT
サブプログラムを使用して、定期的に監査証跡レコードを削除するジョブを構成することもできます。これらのジョブの実行頻度は、監査管理者が制御できます。
参照:
統合監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
31.2 DBMS_AUDIT_MGMTの推奨されないサブプログラム
新しいアプリケーションでは、推奨されないサブプログラムは使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされています。
Oracle Database 12cリリース12.2から、DBMS_AUDIT_MGMT
パッケージの次の機能が非推奨になりました。
-
DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL
プロシージャ -
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY
プロシージャのAUDIT_TRAIL_PROPERTY
パラメータのAUDIT_TRAIL_WRITE
モード
監査レコードが共通ロギング・インフラストラクチャ・キューをバイパスし、新しい内部リレーショナル表に直接書き込まれるようになったため、これらは不要になりました。
31.3 DBMS_AUDIT_MGMTのセキュリティ・モデル
ユーザーがすべてのDBMS_AUDIT_MGMT
サブプログラムを実行するには、DBMS_AUDIT_MGMT
パッケージに対するEXECUTE
権限が必要です。SYSDBA
およびAUDIT_ADMIN
ロールには、このパッケージに対するEXECUTE
権限がデフォルトで付与されています。
DBMS_AUDIT_MGMT
パッケージに対するEXECUTE
権限およびAUDIT_ADMIN
ロールは、監査管理者にのみ付与することをお薦めします。
DBMS_AUDIT_MGMT
サブプログラムの実行は常に監査されています。
31.4 DBMS_AUDIT_MGMTの定数
DBMS_AUDIT_MGMT
パッケージは、パラメータ値の指定に使用できるいくつかの定数を定義します。
これらの定数を、次の表に示します。
監査証跡は、監査レコードがデータベース表、オペレーティング・システム・ファイルまたはXMLファイルのいずれに書き込まれるかに基づいて分類できます。次の表に、監査証跡タイプの定数を示します。
表31-1 DBMS_AUDIT_MGMTの定数 - 監査証跡タイプ
定数 | タイプ | 説明 |
---|---|---|
|
|
すべての監査証跡タイプ。標準データベース監査証跡( |
|
|
|
|
|
標準監査( |
|
|
|
|
|
オペレーティング・システム(OS)監査証跡およびXML監査証跡の両方。 |
|
|
オペレーティング・システム監査証跡。オペレーティング・システム・ファイルに格納された監査レコードを参照します。 |
|
|
統合監査証跡。統合監査では、すべての監査レコードは監査証跡に書き込まれ、 |
|
|
各データベース(プライマリまたはスタンバイ)のオペレーティング・システムのあふれたファイル。アーカイブまたはパージ操作で使用されます |
|
|
|
|
|
XML監査証跡。XMLファイルに格納された監査レコードを参照します。 |
監査証跡プロパティによって、監査構成設定が決定されます。次の表に、監査証跡のプロパティに関連のある定数を示します。
表31-2 DBMS_AUDIT_MGMTの定数 - 監査証跡のプロパティ
定数 | タイプ | 説明 |
---|---|---|
|
|
ノート: Oracle Database 12cリリース12.2から、
『Oracle Databaseセキュリティ・ガイド』も参照してください。 |
|
|
指定された監査証跡の監査レコードをクリアするためにクリーンアップ・プロシージャをコールする間隔(時間単位)。 |
|
|
データベース監査表の監査レコードを削除する場合に使用するバッチ・サイズを指定します。監査レコードは、 |
|
|
監査ディレクトリの監査ファイルを削除する場合に使用するバッチ・サイズを指定します。監査ファイルは、 |
|
|
新しい監査ファイルが作成されるまでオペレーティング・システム(OS)監査ファイルまたはXML監査ファイルをオープンしておくことができる最大日数を指定します。 |
|
|
新しい監査ファイルがオープンされるまでオペレーティング・システム(OS)監査ファイルまたはXML監査ファイル・サイズを大きくできる最大サイズ(KB単位)を指定します。 |
監査証跡は、監査証跡パージ・ジョブによって消去されます。次の表に、パージ・ジョブ・ステータスの値に関連する定数を示します。
表31-3 DBMS_AUDIT_MGMTの定数 - パージ・ジョブ・ステータス
定数 | タイプ | 説明 |
---|---|---|
|
|
パージ・ジョブを使用禁止にします。 |
|
|
パージ・ジョブを使用可能にします。 |
31.5 DBMS_AUDIT_MGMTのビュー
DBMS_AUDIT_MGMTビューは、DBMS_AUDIT_MGMT
構成イベントおよびクリーンアップ・イベントを表示するために使用されます。
これらのビューを次の表に示します。
表31-4 DBMS_AUDIT_MGMTで使用されるビュー
ビュー | 説明 |
---|---|
|
クリーンアップ・イベント履歴を表示します。 |
|
現在構成されている監査証跡の削除ジョブが表示されます。 |
|
現在構成されている監査証跡プロパティを表示します。 |
|
監査証跡の最終アーカイブ・タイムスタンプ設定を表示します。 |
参照:
これらのビューの詳細は、『Oracle Databaseリファレンス』を参照してください。
31.6 DBMS_AUDIT_MGMTのサブプログラム・グループ
DBMS_AUDIT_MGMT
パッケージのサブプログラムは、監査証跡管理サブプログラムと監査証跡クリーンアップ・サブプログラムの2つのカテゴリにグループ化できます。
31.6.1 DBMS_AUDIT_MGMT監査証跡管理サブプログラム
監査証跡管理サブプログラムでは、監査証跡プロパティを管理できます。
表31-5 監査証跡管理サブプログラム
サブプログラム | 説明 |
---|---|
統合監査内部リレーショナル表のパーティション間隔を変更します。 |
|
指定した監査証跡プロパティの値をクリアします。 |
|
SGAキュー内の統合監査証跡レコードをディスクに書き込みます(Oracle Database 12cリリース12.2から非推奨)。 |
|
SET_AUDIT_TRAIL_PROPERTYプロシージャで設定されたプロパティ値を戻します。 |
|
データベース・インスタンスのSET_LAST_ARCHIVE_TIMESTAMPプロシージャで設定されたタイムスタンプを戻します。 |
|
統合監査証跡からあふれたOS監査ファイルのデータを、指定した統合監査証跡表領域にロードします。 |
|
現行の表領域からユーザー指定の表領域に監査証跡表を移動します。 |
|
指定した監査証跡タイプの監査証跡プロパティを設定します。 |
|
監査レコードまたはファイルが最後にアーカイブされた日時を示すタイムスタンプを設定します。 |
|
共通ロギング・インフラストラクチャ(CLI)のスワップ表から |
このパッケージ内のすべてのサブプログラムのリストは、「DBMS_AUDIT_MGMTサブプログラムの要約」を参照してください。
31.6.2 DBMS_AUDIT_MGMT監査証跡クリーンアップ・サブプログラム
監査証跡クリーンアップ・サブプログラムでは、監査証跡レコードに対してクリーンアップに関連する操作を実行できます。
表31-6 監査証跡クリーン・アップ・サブプログラム
サブプログラム | 説明 |
---|---|
アーカイブされた監査証跡レコードまたはファイルを削除します。 |
|
SET_LAST_ARCHIVE_TIMESTAMPプロシージャによって設定されたタイムスタンプをクリアします。 |
|
定期的に監査証跡レコードまたはファイルを削除するパージ・ジョブを作成します。 |
|
INIT_CLEANUPプロシージャによって実行された設定および初期化を元に戻します。 |
|
プラガブル・データベース(PDB)のクローニングの後の古い統合監査表を削除します。 |
|
CREATE_PURGE_JOBプロシージャを使用して作成されたパージ・ジョブを削除します。 |
|
監査管理インフラストラクチャを設定し、監査証跡レコードまたはファイルのデフォルトのクリーンアップ間隔を設定します。 |
|
監査証跡タイプに対してINIT_CLEANUPプロシージャが実行されたかどうかを確認します。 |
|
指定したパージ・ジョブでCLEAN_AUDIT_TRAILプロシージャをコールする間隔を設定します。 |
|
指定したパージ・ジョブを使用可能または使用禁止にします。 |
このパッケージ内のすべてのサブプログラムのリストは、「DBMS_AUDIT_MGMTサブプログラムの要約」を参照してください。
31.7 DBMS_AUDIT_MGMTサブプログラムの要約
この表に、DBMS_AUDIT_MGMT
パッケージのサブプログラムをリストし、説明します。
表31-7 DBMS_AUDIT_MGMTパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
統合監査内部リレーショナル表のパーティション間隔を変更します。 |
|
アーカイブされた監査証跡レコードを削除します。 |
|
指定した監査証跡プロパティの値をクリアします。 |
|
SET_LAST_ARCHIVE_TIMESTAMPプロシージャによって設定されたタイムスタンプをクリアします。 |
|
定期的に監査証跡レコードを削除するパージ・ジョブを作成します。 |
|
INIT_CLEANUPプロシージャによって実行された設定および初期化を元に戻します。 |
|
プラガブル・データベース(PDB)のクローニングの後の古い統合監査表を削除します。 |
|
CREATE_PURGE_JOBプロシージャを使用して作成されたパージ・ジョブを削除します。 |
|
SGAキューにある統合監査証跡レコードをディスクに書き込みます。 |
|
監査のコミット遅延時間を秒数で戻します。これは、監査レコードをデータベース監査証跡に |
|
SET_AUDIT_TRAIL_PROPERTYプロシージャで設定されたプロパティ値を戻します。 |
|
データベース・インスタンスのSET_LAST_ARCHIVE_TIMESTAMPプロシージャで設定されたタイムスタンプを戻します。 |
|
監査管理インフラストラクチャを設定し、監査証跡レコードのデフォルトのクリーンアップ間隔を設定します。 |
|
監査証跡タイプに対してINIT_CLEANUPプロシージャが実行されたかどうかを確認します。 |
|
統合監査証跡からあふれたOS監査ファイルのデータを、指定した統合監査証跡表領域にロードします。 |
|
現行の表領域からユーザー指定の表領域に監査証跡表を移動します。 |
|
指定した監査証跡タイプの監査証跡プロパティを設定します。 |
|
監査レコードが最後にアーカイブされた日時を示すタイムスタンプを設定します。 |
|
指定したパージ・ジョブでCLEAN_AUDIT_TRAILプロシージャをコールする間隔を設定します。 |
|
指定したパージ・ジョブを使用可能または使用禁止にします。 |
|
共通ロギング・インフラストラクチャ(CLI)のスワップ表から |
31.7.1 ALTER_PARTITION_INTERVALプロシージャ
このプロシージャは、統合監査内部リレーショナル表のパーティション間隔を変更します。
構文
DBMS_AUDIT_MGMT.ALTER_PARTITION_INTERVAL( interval_number IN BINARY_INTEGER, interval_frequency IN VARCHAR2);
パラメータ
表31-8 ALTER_PARTITION_INTERVALプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
データベースが統合監査内部リレーショナル表のパーティションを作成する間隔を設定します。たとえば、パーティションが2日ごとに作成されるように指定するには、 |
|
サポートされる値は、 |
使用上のノート
-
選択する間隔の頻度は、データベースに生成される監査レコードの率によって決まります。デフォルト設定は1か月です。監査レコードの生成率が高い場合にデフォルトを使用すると、同じパーティションに生成される監査レコードの数が多くなりすぎる可能性があります。このような場合は、1か月または1日など、より頻繁な間隔になるように間隔の頻度を変更する必要があります。監査レコードの生成率がそれほど高くない場合は、デフォルトの1か月のままにしておくことができます。
例
次の例では、2か月ごとに発生するようにパーティション間隔を設定します。
BEGIN DBMS_AUDIT_MGMT.ALTER_PARTITION_INTERVAL( interval_number => 2, interval_frequency => 'MONTH'); END;
31.7.2 CLEAN_AUDIT_TRAILプロシージャ
このプロシージャは、監査証跡レコードを削除します。
通常、CLEAN_AUDIT_TRAIL
プロシージャは、SET_LAST_ARCHIVE_TIMESTAMPプロシージャを使用して監査レコードの最終アーカイブ・タイムスタンプが設定された後にコールされます。
構文
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( audit_trail_type IN PLS_INTEGER, use_last_arch_timestamp IN BOOLEAN DEFAULT TRUE, container IN PLS_INTEGER DEFAULT CONTAINER_CURRENT, database_id IN NUMBER DEFAULT NULL, container_guid IN VARCHAR2 DEFAULT NULL);
パラメータ
表31-9 CLEAN_AUDIT_TRAILプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
クリーンアップ操作を実行する必要がある監査証跡タイプ。監査証跡タイプは表31-1に示されています。 |
|
削除対象となるレコードを決定するときに最終アーカイブ・タイムスタンプを使用するかどうかを指定します。 値が 値が デフォルト値は |
|
値は、接続されたプラガブル・データベース(PDB)の場合は |
|
クリーンアップする監査レコードのデータベースID (DBID) |
|
クリーンアップする監査レコードのコンテナのGUID ノート: このパラメータは非推奨になりましたが、現在は下位互換性のために残されています。 |
使用上のノート
次の使用上のノートが適用されます。
-
オペレーティング・システム(OS)またはXML監査ファイルをクリーンアップするとき、
AUDIT_FILE_DEST
パラメータによって指定された現在の監査ディレクトリのファイルのみがクリーンアップされます。 -
Windowsプラットフォームでは、
audit_trail_type
パラメータがDBMS_AUDIT_MGMT.AUDIT_TRAIL_OS
に設定されたとき、クリーンアップは実行されません。これは、Windows上のオペレーティング・システム(OS)監査レコードがWindowsのイベント ビューアに書き込まれるためです。 -
UNIXプラットフォームでは、オペレーティング・システム(OS)監査レコードがsyslogに書き込まれる場合、クリーンアップは実行されません。
audit_trail_type
パラメータがDBMS_AUDIT_MGMT.AUDIT_TRAIL_OS
に設定されている場合、AUDIT_FILE_DEST
初期化パラメータに指定されたディレクトリの下にある*.aud
ファイルのみを削除します。参照:
『Oracle Databaseリファレンス』の「AUDIT_SYSLOG_LEVEL」
-
audit_trail_type
パラメータがDBMS_AUDIT_MGMT.AUDIT_TRAIL_XML
に設定されている場合、このプロシージャは現在の監査ディレクトリからXML監査ファイル(*.xml
)のみを削除します。Oracle Databaseは、XML監査ファイルに対して、ブックキーピング・ファイル(
adx_
$ORACLE_SID
.txt
)を保持しています。このファイルは、クリーンアップ・プロシージャでは削除されません。 -
use_last_arch_timestamp
パラメータがTRUE
に設定されているときに統合監査証跡のクリーンアップが実行された場合:-
クリーンアップ操作に
database_id
値を設定している場合、この値がCLEAN_AUDIT_TRAIL
の実行時に最後のアーカイブ・タイムスタンプとともに使用されます。データベース表に存在する統合監査レコードのクリーン・アップ中に、監査表パーティションのHIGH_VALUE
が最後のアーカイブ・タイムスタンプより小さい場合、それらのパーティションは直接削除され、残りの監査表パーティションの場合は、最後のアーカイブ・タイムスタンプとdatabase_id
値に基づいてレコードが削除されます。ただし、あふれたオペレーティング・システム監査ファイルのクリーン・アップ時に存在する統合監査レコードについては、database_id
値が無視されます。オペレーティング・システム監査ファイルのクリーンアップは、最後のアーカイブ・タイムスタンプにのみ基づきます。あふれたオペレーティング・システム監査ファイルに存在する統合監査証跡レコードのクリーン・アップ操作でdatabase_id
値を使用する場合は、DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL
を実行する前にDBMS_AUDIT_MGMT.LOAD_UNIFIED_AUDIT_FILES
プロシージャを使用して、これらのファイルの内容をデータベース表にロードします。 -
CLEAN_AUDIT_TRAIL
プロシージャの起動時にdatabase_id
値を設定しなかった場合、Oracle Databaseは、database_id
値および統合監査証跡レコードが存在する場所(データベース表またはあふれたオペレーティング・システム監査ファイル)に関係なく、統合監査レコードをパージします。クリーン・アップ時には、コンテナの現在のデータベースIDの最終アーカイブ・タイムスタンプ値が使用されます。
-
-
use_last_arch_timestamp
パラメータがFALSE
に設定されているときに統合監査証跡のクリーンアップが実行された場合:-
クリーンアップ操作に
database_id
値を設定している場合、データベース表に存在する統合監査証跡レコードをCLEAN_AUDIT_TRAIL
がクリーンアップするときに、この値が使用されます。ただし、database_id
値は、あふれたオペレーティング・システム・ファイルに存在する統合監査証跡レコードのクリーンアップには使用されません。あふれたオペレーティング・システム監査ファイルに存在する統合監査レコードのCLEAN_AUDIT_TRAIL
操作でdatabase_id
値を使用する場合は、DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL
を実行する前にDBMS_AUDIT_MGMT.LOAD_UNIFIED_AUDIT_FILES
プロシージャを使用して、これらのファイルの内容をデータベース表にロードします。 -
CLEAN_AUDIT_TRAIL
プロシージャの起動時にdatabase_id
値を設定しなかった場合、Oracle Databaseは、database_id
値および統合監査証跡レコードが存在する場所(データベース表またはあふれたオペレーティング・システム監査ファイル)に関係なく、すべての統合監査レコードをパージします。
-
-
CLEAN_AUDIT_TRAIL
プロシージャでは、SYSTIMESTAMPを参照する場合、SET_LAST_ARCHIVE_TIMESTAMPを使用して設定される最終アーカイブ・タイムスタンプが、SYS_EXTRACT_UTCを使用して設定されることを予期しています。統合監査証跡のデータへの参照は、UTC時間書式で行われます。 -
PDBデータベースが読取り専用の場合、そのデータベースの監査レコードのクリーン・アップは実行されず、
AUDSYS.AUD$UNIFIED
表に対するクリーン・アップ・ジョブを実行せずに戻ります。 -
データベースのタイムスタンプが現在のシステム・タイムスタンプよりも進んでいる場合は、エラーが返されます。
-
マルチテナント・セットアップでは、PDBのいずれかに現在のシステム・タイムスタンプ(UTC形式)よりも進んでいるタイムスタンプがある場合、他のデータベースで監査証跡レコードがクリーン・アップされて、監査証跡にクリーン・アップの最後のアクティビティが残されるため、そのPDBのレコードはクリーン・アップされません。
-
SET_LAST_ARCHIVE_TIMESTAMP
プロシージャとCLEAN_AUDIT_TRAIL
プロシージャは、同じトランザクション・ブロックでは実行できません。そうしないと、通常、結果を予測できなくなります。 CLEAN_AUDIT_TRAIL
プロシージャをコールする前に、SET_LAST_ARCHIVE_TIMESTAMP
のトランザクションが完了していることを確認します。SET_LAST_ARCHIVE_TIMESTAMP
(UTC形式)で指定された時間までレコードのクリーンに関して予測可能な結果を得るには、SET_LAST_ARCHIVE_TIMESTAMP
プロシージャとCLEAN_AUDIT_TRAIL
プロシージャが同じトランザクションでコールされていないことを確認します。CLEAN_AUDIT_TRAIL
プロシージャをコールする前に、commit
を実行することをお薦めします。
例
次の例では、最終アーカイブ・タイムスタンプより前に更新されたオペレーティング・システム(OS)監査証跡レコードをクリーンアップするために、CLEAN_AUDIT_TRAIL
プロシージャをコールしています。
BEGIN DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS, use_last_arch_timestamp => TRUE); END;
31.7.3 CLEAR_AUDIT_TRAIL_PROPERTYプロシージャ
このプロシージャは、指定した監査証跡プロパティの値をクリアします。
監査証跡プロパティは、SET_AUDIT_TRAIL_PROPERTYプロシージャを使用して設定されます。
CLEAR_AUDIT_TRAIL_PROPERTY
プロシージャでは、オプションでuse_default_values
パラメータを使用して、プロパティの値をデフォルト値にリセットできます。
構文
DBMS_AUDIT_MGMT.CLEAR_AUDIT_TRAIL_PROPERTY( audit_trail_type IN PLS_INTEGER, audit_trail_property IN PLS_INTEGER, use_default_values IN BOOLEAN DEFAULT FALSE) ;
パラメータ
表31-10 CLEAR_AUDIT_TRAIL_PROPERTYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
プロパティをクリアする必要がある監査証跡タイプ。監査証跡タイプは表31-1に示されています |
|
値をクリアする必要がある監査証跡プロパティ。 監査証跡プロパティは表31-2に示されています |
|
クリアする値のかわりに、 このパラメータのデフォルト値は |
使用上のノート
次の使用上のノートが適用されます。
-
このプロシージャは、使用しない監査証跡プロパティの値をクリアする場合に使用できます。たとえば、オペレーティング・システム監査ファイルのサイズを制限しない場合、このプロシージャを使用して
OS_FILE_MAX_SIZE
プロパティを再設定できます。また、このプロシージャを使用して、監査証跡プロパティをデフォルト値にリセットすることもできます。この場合、このプロシージャを起動するときに、
use_default_values
をTRUE
に設定する必要があります。 -
AUDIT_TRAIL_AUD_STD
監査証跡タイプおよびAUDIT_TRAIL_FGA_STD
監査証跡タイプに対しては、DB_DELETE_BATCH_SIZE
プロパティを個別にクリアする必要があります。AUDIT_TRAIL_DB_STD
監査証跡タイプおよびAUDIT_TRAIL_ALL
監査証跡タイプを使用して、このプロパティをまとめてクリアすることはできません。 -
use_default_value
をFALSE
に設定してDB_DELETE_BATCH_SIZE
プロパティの値をクリアしても、DB_DELETE_BATCH_SIZE
のデフォルト値が想定されます。監査レコードは常にバッチで削除されるためです。 -
AUDIT_TRAIL_OS
監査証跡タイプおよびAUDIT_TRAIL_XML
監査証跡タイプに対しては、FILE_DELETE_BATCH_SIZE
プロパティを個別にクリアする必要があります。AUDIT_TRAIL_FILES
監査証跡タイプおよびAUDIT_TRAIL_ALL
監査証跡タイプを使用して、このプロパティをまとめてクリアすることはできません。 -
use_default_value
をFALSE
に設定してFILE_DELETE_BATCH_SIZE
プロパティの値をクリアしても、FILE_DELETE_BATCH_SIZE
のデフォルト値が想定されます。監査ファイルは常にバッチで削除されるためです。 -
CLEANUP_INTERVAL
プロパティの値はクリアできません。 -
AUDIT_TRAIL_WRITE_MODE
プロパティの値はクリアできません。
例
次の例では、OS_FILE_MAX_SIZE
監査証跡プロパティの値を消去するために、CLEAR_AUDIT_TRAIL_PROPERTY
プロシージャをコールしています。このプロシージャでは、USE_DEFAULT_VALUES
パラメータに値FALSE
が使用されています。これは、オペレーティング・システム(OS)監査ファイルの最大サイズのしきい値がなくなることを意味します。
BEGIN DBMS_AUDIT_MGMT.CLEAR_AUDIT_TRAIL_PROPERTY( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS, AUDIT_TRAIL_PROPERTY => DBMS_AUDIT_MGMT.OS_FILE_MAX_SIZE, USE_DEFAULT_VALUES => FALSE ); END;
31.7.4 CLEAR_LAST_ARCHIVE_TIMESTAMPプロシージャ
このプロシージャは、SET_LAST_ARCHIVE_TIMESTAMPプロシージャによって設定されたタイムスタンプをクリアします。
構文
DBMS_AUDIT_MGMT.CLEAR_LAST_ARCHIVE_TIMESTAMP( audit_trail_type IN PLS_INTEGER, rac_instance_number IN PLS_INTEGER DEFAULT NULL, container IN PLS_INTEGER DEFAULT CONTAINER_CURRENT, database_id IN NUMBER DEFAULT NULL, container_guid IN VARCHAR2 DEFAULT NULL);
パラメータ
表31-11 CLEAR_LAST_ARCHIVE_TIMESTAMPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
タイムスタンプをクリアする必要がある監査証跡タイプ。監査証跡タイプは表31-1に示されています。 |
|
Oracle Real Application Clusters(Oracle RAC)インスタンスのインスタンス番号。デフォルト値は |
|
値は、接続されたプラガブル・データベース(PDB)の場合は |
|
クリーンアップする監査レコードのデータベースID (DBID) |
|
クリーンアップする監査レコードのコンテナのGUID ノート: このパラメータは非推奨になりましたが、現在は下位互換性のために残されています。 |
使用上のノート
次の使用上のノートが適用されます。
-
一度にクリアできるのは、1つの
audit_trail_type
のタイムスタンプのみです。 -
次の値はこのプロシージャでは無効な
audit_trail_type
値であり、使用できません。-
AUDIT_TRAIL_ALL
-
AUDIT_TRAIL_DB_STD
-
AUDIT_TRAIL_FILES
-
例
次の例では、オペレーティング・システム(OS)監査証跡タイプのタイムスタンプ値を消去するために、CLEAR_LAST_ARCHIVE_TIMESTAMP
プロシージャをコールしています。
BEGIN DBMS_AUDIT_MGMT.CLEAR_LAST_ARCHIVE_TIMESTAMP( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS, rac_instance_number => 1); END;
31.7.5 CREATE_PURGE_JOBプロシージャ
このプロシージャは、定期的に監査証跡レコードを削除するパージ・ジョブを作成します。
このプロシージャは、ユーザーが指定した間隔でクリーンアップ操作を実行します。クリーンアップ操作を実行するために、CLEAN_AUDIT_TRAILプロシージャをコールします。
パージ・ジョブの頻度を変更するには、SET_PURGE_JOB_INTERVALプロシージャを使用します。
パージ・ジョブを使用可能または使用禁止にするには、SET_PURGE_JOB_STATUSプロシージャを使用します。
CREATE_PURGE_JOB
プロシージャによって作成されたパージ・ジョブを削除するには、DROP_PURGE_JOBプロシージャを使用します。
構文
DBMS_AUDIT_MGMT.CREATE_PURGE_JOB( audit_trail_type IN PLS_INTEGER, audit_trail_purge_interval IN PLS_INTEGER, audit_trail_purge_name IN VARCHAR2, use_last_arch_timestamp IN BOOLEAN DEFAULT TRUE, container IN PLS_INTEGER DEFAULT CONTAINER_CURRENT) ;
パラメータ
表31-12 CREATE_PURGE_JOBプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パージ・ジョブを作成する必要がある監査証跡タイプ。監査証跡タイプは表31-1に示されています。 |
|
クリーンアップ・プロシージャがコールされる間隔(時間単位)。値が小さいほど頻繁にクリーンアップが実行されます。 |
|
パージ・ジョブを識別する名前。 |
|
削除対象となるレコードを決定するときに最終アーカイブ・タイムスタンプを使用するかどうかを指定します。 値が 値が デフォルト値は |
|
値は、接続されたプラガブル・データベース(PDB)の場合は |
使用上のノート
このプロシージャを使用して、監査証跡レコードに対してCLEAN_AUDIT_TRAILプロシージャをスケジュールします。
例
次の例では、すべての監査証跡タイプに対してCLEANUP
という名前のクリーンアップ・ジョブを作成するために、CREATE_PURGE_JOB
プロシージャをコールしています。audit_trail_purge_interval
パラメータを100に設定しています。これは、クリーンアップ・ジョブが100時間ごとに起動されることを意味します。また、use_last_arch_timestamp
パラメータの値をTRUE
に設定しています。これは、最終アーカイブ・タイムスタンプより古いすべての監査レコードが削除されることを意味します。
BEGIN DBMS_AUDIT_MGMT.CREATE_PURGE_JOB( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL, audit_trail_purge_interval => 100 /* hours */, audit_trail_purge_name => 'CLEANUP', use_last_arch_timestamp => TRUE); END;
31.7.6 DEINIT_CLEANUPプロシージャ
DEINIT_CLEANUP
プロシージャは、default_cleanup_interval
パラメータの値をクリアします。ただし、監査表に使用した場合は、監査証跡表を元の表領域に戻しません。
構文
DBMS_AUDIT_MGMT.DEINIT_CLEANUP( audit_trail_type IN PLS_INTEGER, container IN PLS_INTEGER DEFAULT CONTAINER_CURRENT);
パラメータ
表31-13 DEINIT_CLEANUPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
プロシージャをコールする必要がある監査証跡タイプ。 監査証跡タイプは表31-1に示されています |
|
値は、接続されたプラガブル・データベース(PDB)の場合は |
使用上のノート
従来の監査のサポート終了により、従来の監査に関連付けられたPL/SQLパッケージおよびファンクションは非推奨になります。この非推奨には、パッケージおよびファンクションINIT_CLEANUP
、DEINIT_CLEANUP
およびIS_CLEANUP_INITIALIZED
が含まれます。これらのパッケージまたはファンクションは引き続きOracle Database 23cで動作しますが、従来の監査構成に対する追加または変更はできません。
このプロシージャは、AUDIT_TRAIL_UNIFIED
に対して実行できません。起動すると、「ORA-46250
: Invalid value for argument 'AUDIT_TRAIL_TYPE'
」エラーが発生します。
例
次の例では、標準データベース監査証跡のdefault_cleanup_interval
パラメータの設定をクリアしています。
BEGIN DBMS_AUDIT_MGMT.DEINIT_CLEANUP( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD); END;
関連項目
31.7.7 DROP_OLD_UNIFIED_AUDIT_TABLESプロシージャ
このプロシージャは、プラガブル・データベース(PDB)のクローニングの後の古い統合監査表を削除します。
構文
DBMS_AUDIT_MGMT.DROP_OLD_UNIFIED_AUDIT_TABLES( container_guid IN VARCHAR2) ;
パラメータ
表31-14 DROP_OLD_UNIFIED_AUDIT_TABLESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
古い統合監査表のコンテナのGUID |
使用上のノート
プラガブル・データベースがクローニングされると、統合監査表が新しいプラガブル・データベースで新規に作成されます。古い統合監査表を削除するには、クローニングの作成元となったPDBの古いGUID
を指定して、DROP_OLD_UNIFIED_AUDIT_TABLES
を使用します。指定したPDBのDBA_PDB_HISTORY
ビューからGUID
の履歴を問い合せることができます。
DBMS_AUDIT_MGMT.DROP_OLD_UNIFIED_AUDIT_TABLES
プロシージャは、データベースがOracle Databaseリリース12.1以前からアップグレードされた場合にのみ使用します。データベースがそれ以降のリリース(リリース12.2を含む)からアップグレードされた場合、ORA-55906: セキュア・ファイル・ログ[id: 0 name: ORA$AUDIT_NEXTGEN_LOG]は存在しません
というエラーが表示されます。これは、リリース12.2以降では、このプロシージャが検索する共通ロギング・インフラストラクチャ表が作成されなくなったためです。かわりに、AUD$UNIFIED
リレーショナル表に統合監査レコードが格納されます。
例
BEGIN DBMS_AUDIT_MGMT.DROP_OLD_UNIFIED_AUDIT_TABLES ( container_guid => 'E4721865A9321CB5E043EFA9E80A2D77'); END;
31.7.8 DROP_PURGE_JOBプロシージャ
このプロシージャは、CREATE_PURGE_JOBプロシージャを使用して作成されたパージ・ジョブを削除します。パージ・ジョブの名前を引数として渡します。
構文
DBMS_AUDIT_MGMT.DROP_PURGE_JOB( audit_trail_purge_name IN VARCHAR2) ;
パラメータ
表31-15 DROP_PURGE_JOBプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除されるパージ・ジョブの名前。この名前は、CREATE_PURGE_JOBプロシージャで指定したパージ・ジョブの名前です。 |
例
次の例では、DROP_PURGE_JOB
プロシージャを呼び出してパージ・ジョブCLEANUP
を削除します。
BEGIN DBMS_AUDIT_MGMT.DROP_PURGE_JOB( AUDIT_TRAIL_PURGE_NAME => 'CLEANUP'); END;
31.7.9 FLUSH_UNIFIED_AUDIT_TRAILプロシージャ
この推奨されないプロシージャは、SGAキューにある統合監査証跡レコードをディスクに書き込みます。
ノート:
Oracle Database 12cリリース12.2から、このプロシージャは非推奨になっています。
構文
DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL ( flush_type IN BINARY_INTEGER DEFAULT FLUSH_CURRENT_INSTANCE, container IN BINARY_INTEGER DEFAULT CONTAINER_CURRENT);
パラメータ
表31-16 FLUSH_UNIFIED_AUDIT_TRAILプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
このパラメータは、次のいずれかの引数をとります。
|
|
SGAキューがフラッシュされるコンテナ。このパラメータは、次のいずれかの引数をとります。
|
31.7.10 GET_AUDIT_COMMIT_DELAYファンクション
このファンクションは、監査のコミット遅延時間を秒数で戻します。監査のコミット遅延時間は、監査レコードをデータベース監査証跡にCOMMIT
するのにかかる最大時間です。監査レコードのコミットに、監査のコミット遅延時間で定義された値よりも長い時間がかかる場合、監査レコードのコピーがオペレーティング・システム(OS)監査証跡に書き込まれます。
監査のコミット遅延時間の値は、データベース監査レコードの最終アーカイブ・タイムスタンプを決定する場合に役立ちます。
構文
DBMS_AUDIT_MGMT.GET_AUDIT_COMMIT_DELAY RETURN NUMBER;
31.7.11 GET_ AUDIT_TRAIL_PROPERTY_VALUEファンクション
このプロシージャは、SET_AUDIT_TRAIL_PROPERTYプロシージャで設定されたプロパティ値を戻します。
構文
DBMS_AUDIT_MGMT.GET_AUDIT_TRAIL_PROPERTY_VALUE( audit_trail_type IN PLS_INTEGER, audit_trail_property IN PLS_INTEGER) RETURN NUMBER;
パラメータ
戻り値
プロパティ値がSGAメモリー内にキャッシュされる場合、このファンクションは、SET_AUDIT_TRAIL_PROPERTY Procedureで設定された値を戻します。それ以外の場合、NULL
を戻します。
監査証跡プロパティ値がDBMS_AUDIT_MGMT.CLEAN_UP_INTERVAL
に設定されている場合、GET_AUDIT_TRAIL_PROPERTY_VALUE
ファンクションはORA-46250
エラーを戻すことがあります。パージ・ジョブのクリーンアップ間隔を確認するには、SYS.DAM_CLEANUP_JOBS$
を問い合せます。
例
次の例では、SET_AUDIT_TRAIL_PROPERTYプロシージャで設定されたOS_FILE_MAX_AGE
のプロパティ値を出力します。
SET_AUDIT_TRAIL_PROPERTY. SET SERVEROUTPUT ON DECLARE OS_MAX_AGE_VAL NUMBER; BEGIN OS_MAX_AGE_VAL := DBMS_AUDIT_MGMT.GET_AUDIT_TRAIL_PROPERTY_VALUE( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS, audit_trail_property => DBMS_AUDIT_MGMT. OS_FILE_MAX_AGE); IF OS_MAX_AGE_VAL is not NULL THEN DBMS_OUTPUT.PUT_LINE('The Maximum Age configured for OS Audit files is: ' || OS_MAX_AGE_VAL); END IF; END;
31.7.12 GET_LAST_ARCHIVE_TIMESTAMPファンクション
このプロシージャは、データベース・インスタンスのSET_LAST_ARCHIVE_TIMESTAMP
プロシージャで設定されたタイムスタンプを戻します。
構文
DBMS_AUDIT_MGMT.GET_LAST_ARCHIVE_TIMESTAMP( audit_trail_type IN PLS_INTEGER) RETURN TIMESTAMP;
パラメータ
表31-18 GET_LAST_ARCHIVE_TIMESTAMPファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
取得するタイムスタンプの監査証跡タイプ。このプロシージャでサポートされている監査証跡タイプは、 |
戻り値
GET_LAST_ARCHIVE_TIMESTAMP
ファンクションは、最終アーアカイブ・タイムスタンプを戻します。
使用上のノート
または、DBA_AUDIT_MGMT_LAST_ARCH_TS
データ・ディクショナリ・ビューを問い合せることで、読取り/書込みモードのデータベースの最終アーカイブ・タイムスタンプを確認できます。
例
次の例では、READ ONLY
のデータベースにSET_LAST_ARCHIVE_TIMESTAMP
プロシージャで設定されたタイムスタンプを出力します。
SET SERVEROUTPUT ON DECLARE LAT_TS TIMESTAMP; BEGIN LAT_TS := DBMS_AUDIT_MGMT.GET_LAST_ARCHIVE_TIMESTAMP( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS); IF LAT_TS is not NULL THEN DBMS_OUTPUT.PUT_LINE('The Last Archive Timestamp is: ' || to_char(LAT_TS)); END IF; END;
31.7.13 INIT_CLEANUPプロシージャ
監査証跡表がSYSTEM
表領域にある場合、プロシージャによってSYSAUX
表領域に移動されます。統合監査を使用している場合は、このプロシージャを実行する必要はありません。統合監査証跡表は、SYSAUX
表領域にデフォルトで存在するからです。統合監査を使用していない場合は、総合監査なしで環境を参照するドキュメントについて、『Oracle Databaseアップグレード・ガイド』を参照してください。
監査証跡表をSYSTEM
表領域から移動すると、データベース全体のパフォーマンスが向上します。監査証跡表は、INIT_CLEANUP
プロシージャによってSYSAUX
表領域に移動されます。監査表がSET_AUDIT_TRAIL_LOCATIONプロシージャによって他の場所にすでに移動されている場合、表は移動されません。
SET_AUDIT_TRAIL_LOCATIONプロシージャでは、データベース監査表の代替ターゲット表領域を指定できます。
INIT_CLEANUP
プロシージャは、現時点では、AUDIT_TRAIL_OS
、AUDIT_TRAIL_XML
およびAUDIT_TRAIL_FILES
監査証跡タイプには関係ありません。これらの監査証跡タイプに、事前設定は必要ありません。
参照:
すべての監査証跡タイプのリストは、表31-1を参照してください
このプロシージャは、監査証跡レコードのデフォルトのクリーンアップ間隔も設定します。
構文
DBMS_AUDIT_MGMT.INIT_CLEANUP( audit_trail_type IN PLS_INTEGER, default_cleanup_interval IN PLS_INTEGER container IN PLS_INTEGER DEFAULT CONTAINER_CURRENT);
パラメータ
表31-19 INIT_CLEANUPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
クリーンアップ操作を初期化する必要がある監査証跡タイプ。 監査証跡タイプは表31-1に示されています( |
|
クリーンアップ・プロシージャがコールされるデフォルトの間隔(時間単位)。最小値は1、最大値は999です。 |
|
値:接続されているプラガブル・データベース(PDB)の場合は |
使用上のノート
従来の監査のサポート終了により、従来の監査に関連付けられたPL/SQLパッケージおよびファンクションは非推奨になります。この非推奨には、パッケージおよびファンクションINIT_CLEANUP
、DEINIT_CLEANUP
およびIS_CLEANUP_INITIALIZED
が含まれます。これらのパッケージまたはファンクションは引き続きOracle Database 23cで動作しますが、従来の監査構成に対する追加または変更はできません。
次の使用上のノートが適用されます。
-
このプロシージャでは、表領域間のデータ移動が発生する可能性があります。特に、データベース監査証跡表への移入がすでに行われている場合、この操作によってリソースが集中的に使用される可能性があります。このプロシージャは、オフピークの時間帯に起動することをお薦めします。
-
監査証跡表の移動先の
SYSAUX
表領域に、監査証跡表に対応する十分な領域があることを確認してください。また、頻繁な書込み操作を行うために、SYSAUX
表領域を最適化する必要があります。 -
default_cleanup_interval
は、SET_AUDIT_TRAIL_PROPERTYプロシージャを使用して後で変更できます。 -
監査証跡表を
SYSAUX
表領域に移動しない場合は、INIT_CLEANUP
プロシージャをコールする前に、DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION
プロシージャを使用して、監査証跡表を別の表領域に移動する必要があります。 -
このプロシージャを
AUDIT_TRAIL_UNIFIED
に対して起動すると、ORA-46250
エラーが発生します。デフォルトでクリーンアップが実行可能なため、クリーンアップ用の初期化を行う必要はありません。
参照:
「SET_AUDIT_TRAIL_LOCATIONプロシージャ」を参照してください。
例
次の例では、すべての監査証跡タイプに対してdefault_cleanup_interval
を12時間に設定するために、INIT_CLEANUP
プロシージャをコールしています。
BEGIN DBMS_AUDIT_MGMT.INIT_CLEANUP( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL, default_cleanup_interval => 12 /* hours */); END;
参照:
すべての監査証跡タイプのリストは、表31-1を参照してください
31.7.14 IS_CLEANUP_INITIALIZEDファンクション
INIT_CLEANUP
プロシージャが実行されたかどうかを確認します。従来の監査パッケージおよびファンクションは、Oracle Database 23cでは非推奨です。
従来の監査のサポート終了により、従来の監査に関連付けられたPL/SQLパッケージおよびファンクションは非推奨になります。この非推奨には、パッケージおよびファンクションINIT_CLEANUP
、DEINIT_CLEANUP
およびIS_CLEANUP_INITIALIZED
が含まれます。これらのパッケージまたはファンクションは引き続きOracle Database 23cで動作しますが、従来の監査構成に対する追加または変更はできません。
監査証跡タイプに対してこのプロシージャがすでに実行されている場合、IS_CLEANUP_INITIALIZED
ファンクションはTRUE
を戻します。監査証跡タイプに対してこのプロシージャが実行されていない場合は、FALSE
を戻します。
このファンクションは、現時点では、AUDIT_TRAIL_OS
、AUDIT_TRAIL_XML
およびAUDIT_TRAIL_FILES
監査証跡タイプには関係ありません。これらの監査証跡タイプに対しては、常にTRUEを戻します。これらの監査証跡タイプに、事前設定は必要ありません。
参照:
すべての監査証跡タイプのリストは、表31-1を参照してください
構文
DBMS_AUDIT_MGMT.IS_CLEANUP_INITIALIZED( audit_trail_type IN PLS_INTEGER container IN PLS_INTEGER DEFAULT CONTAINER_CURRENT) RETURN BOOLEAN;
パラメータ
表31-20 IS_CLEANUP_INITIALIZEDファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ファンクションをコールする必要がある監査証跡タイプ。 監査証跡タイプは表31-1に示されています |
|
値は、接続されたプラガブル・データベース(PDB)の場合は
|
例
次の例では、クリーンアップ操作のために標準データベース監査証跡タイプが初期化されているかどうかを確認しています。監査証跡タイプが初期化されていない場合は、初期化するためにINIT_CLEANUPプロシージャをコールしています。
BEGIN IF NOT DBMS_AUDIT_MGMT.IS_CLEANUP_INITIALIZED(DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) THEN DBMS_AUDIT_MGMT.INIT_CLEANUP( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, default_cleanup_interval => 12 /* hours */); END IF; END;
関連項目
31.7.15 LOAD_UNIFIED_AUDIT_FILESプロシージャ
このプロシージャは、統合監査証跡からあふれたOS監査ファイルのデータを、指定した統合監査証跡表領域にロードします。
参照:
OS監査証跡レコードの統合監査証跡への移動については、『Oracle Databaseセキュリティ・ガイド』を参照してください。
構文
DBMS_AUDIT_MGMT.LOAD_UNIFIED_AUDIT_FILES ( load_batch_size IN PLS_INTEGER container IN BINARY_INTEGER);
パラメータ
表31-21 LOAD_UNIFIED_AUDIT_FILESプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
指定した統合監査証跡表領域にロードされる、あふれたOS監査ファイルの数を指定します。 |
|
値は、接続されたプラガブル・データベース(PDB)の場合は
|
使用上のノート
LOAD_UNIFIED_AUDIT_FILES
プロシージャの実行前に、監査データ指定表領域をオンラインに設定していることを確認してください。
31.7.16 SET_AUDIT_TRAIL_LOCATIONプロシージャ
このプロシージャは、現行の表領域からユーザー指定の表領域に監査証跡表を移動します。
SET_AUDIT_TRAIL_LOCATION
プロシージャは、AUDIT_TRAIL_OS
、AUDIT_TRAIL_XML
およびAUDIT_TRAIL_FILES
監査証跡タイプには関係ありません。AUDIT_FILE_DEST
初期化パラメータは、これらの監査証跡タイプに対して宛先ディレクトリを指定できる唯一の方法です。
参照:
-
すべての監査証跡タイプのリストは、表31-1を参照してください
-
『Oracle Databaseリファレンス』のAUDIT_FILE_DESTに関する項
構文
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION( audit_trail_type IN PLS_INTEGER, audit_trail_location_value IN VARCHAR2) ;
パラメータ
表31-22 SET_AUDIT_TRAIL_LOCATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
監査証跡位置を設定する必要がある監査証跡タイプ。 監査証跡タイプは表31-1に示されています |
|
監査証跡レコードの移動先または表領域。 |
使用上のノート
次の使用上のノートが適用されます。
- 監査証跡の場所を変更する前に、使用する予定の新しい場所のブロック・サイズを確認します。ブロック・サイズは、現在の監査証跡の場所と同じサイズである必要があります。そうしなかった場合、
ORA-14520: 表領域文字列ブロック・サイズ[string]が既存のオブジェクト・ブロック・サイズ[string]と一致しません
のエラー・メッセージが表示されます。表領域のブロック・サイズを確認するには、USER_TABLESPACES
またはDBA_TABLESPACES
データ・ディクショナリ・ビューを問い合せます。複数のブロック・サイズに対するパーティション制限の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。 -
SET_AUDIT_TRAIL_LOCATION
プロシージャを使用して監査データのカスタム表領域を設定しても、LOBと索引パーティションは新しい表領域に変更されません。それらは、デフォルトのSYSAUX
表領域に格納されたままになります。 -
デフォルトでは、監査証跡レコードは
SYSAUX
表領域に書き込まれます。この手順を使用すると、表領域の場所をユーザー表領域に変更できます。ただし、指定する表領域は自動ストレージ領域管理(ASSM)表領域である必要があります。 -
このプロシージャは、次の
audit_trail_type
値に対して有効です。-
AUDIT_TRAIL_AUD_STD
-
AUDIT_TRAIL_FGA_STD
-
AUDIT_TRAIL_DB_STD
-
AUDIT_TRAIL_UNIFIED
-
-
audit_trail_type
値AUDIT_TRAIL_AUD_STD
、AUDIT_TRAIL_FGA_STD
およびAUDIT_TRAIL_DB_STD
については、監査証跡表が移動されるターゲット表領域に、監査証跡表に対応する十分な領域があることを確認する必要があります。また、頻繁な書込み操作を行うために、ターゲット表領域を最適化する必要があります。 -
このプロシージャでは、表領域間のデータ移動が発生します。
audit_trail_type
値AUDIT_TRAIL_AUD_STD
、AUDIT_TRAIL_FGA_STD
およびAUDIT_TRAIL_DB_STD
の場合、特にデータベース監査証跡表にすでにデータが移入されている場合には、この操作でリソースが集中的に使用される可能性があります。このプロシージャは、オフピークの時間帯に起動することをお薦めします。 -
オプションで、監査証跡位置として暗号化された表領域を指定できます。
-
AUDIT_TRAIL_TYPE
がAUDIT_TRAIL_UNIFIED
の場合、このプロシージャによって統合監査証跡内の新しい監査レコードの表領域が設定されますが、古い監査レコードは移動されません。つまり、統合監査証跡では、リソースが集中的に使用されることはありません。 -
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューは、内部リレーショナル表の上に作成されます。この表は、(データベース・エディションに関係なく)デフォルト間隔の1日を設定したパーティション間隔の表です。この設定は、DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION
プロシージャの実行時に、新規作成された内部表のパーティションのみが、このプロシージャの一環として設定された新規表領域に作成されることを意味します。この表の既存のパーティションは、以前の表領域に残されます(SYSAUX
がこの内部表のデフォルト表領域です)。この表のパーティション間隔を変更する場合は、DBMS_AUDIT_MGMT.ALTER_PARTITION_INTERVAL
プロシージャを使用します。 -
監査レコードのパフォーマンスと可用性の向上のためのベスト・プラクティスとして、監査表領域で
AUTOEXTEND
オプションを有効にします。 -
audit_trail_location_value
パラメータに指定された表領域のブロック・サイズが現在の表領域と異なる場合、AUDIT_TRAIL_UNIFIED
audit_trail_type
のこのプロシージャはORA-14520: Tablespace string block size [string] does not match existing object block size [string]
エラーで失敗します。これは、パーティション表の複数のブロック・サイズの制限によるものです。
例
次の例では、データベース監査証跡表AUD$
およびFGA_LOG$
を、現行の表領域からユーザー作成の表領域RECORDS
に移動しています。
BEGIN DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD, audit_trail_location_value => 'RECORDS'); END;
31.7.17 SET_AUDIT_TRAIL_PROPERTYプロシージャ
このプロシージャは、指定した監査証跡タイプの監査証跡プロパティを設定します。
オペレーティング・システム(OS)監査証跡タイプおよびXML監査証跡タイプに対しては、OS_FILE_MAX_SIZE
、OS_FILE_MAX_AGE
およびFILE_DELETE_BATCH_SIZE
プロパティを設定します。OS_FILE_MAX_SIZE
プロパティおよびOS_FILE_MAX_AGE
プロパティによって、新しい監査証跡ファイルが作成されるまでの監査証跡ファイルのサイズおよび経過時間の最大値が決定されます。FILE_DELETE_BATCH_SIZE
プロパティは、1つのバッチで削除される監査レコードの数を指定します。
データベース監査証跡タイプに対しては、DB_DELETE_BATCH_SIZE
およびCLEANUP_INTERVAL
プロパティを設定します。DB_DELETE_BATCH_SIZE
によって、監査証跡表から削除されるレコードのバッチ・サイズが指定されます。これによって、クリーンアップ操作が中断された場合、次にその操作が開始されたときに最初から開始する必要がなくなります。これは、最後に処理されたバッチより前のすべてのバッチがすでにコミットされているためです。
CLEANUP_INTERVAL
によって、クリーンアップ・プロシージャがコールされる頻度が時間単位で指定されます。
構文
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY( audit_trail_type IN PLS_INTEGER, audit_trail_property IN PLS_INTEGER, audit_trail_property_value IN PLS_INTEGER) ;
パラメータ
表31-23 SET_AUDIT_TRAIL_PROPERTYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
プロパティを設定する必要がある監査証跡タイプ。監査証跡タイプは表31-1に示されています |
|
設定される監査証跡プロパティ。監査証跡プロパティは表31-2に示されています |
|
|
使用上のノート
次の使用上のノートが適用されます。
-
値を明示的に設定しない監査証跡プロパティでは、デフォルト値が使用されます。
-
1つのオペレーティング・システム(OS)監査証跡タイプまたはXML監査証跡タイプに対して
OS_FILE_MAX_SIZE
およびOS_FILE_MAX_AGE
プロパティの両方を設定すると、これらの2つの制限のいずれかに達したときに新しい監査証跡ファイルが作成されます。たとえば、
OS_FILE_MAX_SIZE
が10000、OS_FILE_MAX_AGE
が5であるとします。オペレーティング・システム監査ファイルがすでに5日を超えて保持されている場合は、サイズが9000KBでも、新しい監査ファイルがオープンされます。これは、いずれかの制限に達したためです。 -
AUDIT_TRAIL_AUD_STD
およびAUDIT_TRAIL_FGA_STD
監査証跡タイプに対しては、DB_DELETE_BATCH_SIZE
プロパティを個別に設定する必要があります。AUDIT_TRAIL_DB_STD
監査証跡タイプおよびAUDIT_TRAIL_ALL
監査証跡タイプを使用して、このプロパティをまとめて設定することはできません。 -
DB_DELETE_BATCH_SIZE
プロパティを使用すると、1つのバッチで削除される監査レコードの数を制御できます。このパラメータに大きな値を設定するには、UNDOログ領域の割当てを増やす必要があります。 -
AUDIT_TRAIL_OS
監査証跡タイプおよびAUDIT_TRAIL_XML
監査証跡タイプに対しては、FILE_DELETE_BATCH_SIZE
プロパティを個別に設定する必要があります。AUDIT_TRAIL_FILES
監査証跡タイプおよびAUDIT_TRAIL_ALL
監査証跡タイプを使用して、このプロパティをまとめて設定することはできません。 -
FILE_DELETE_BATCH_SIZE
プロパティを使用すると、1つのバッチで削除される監査ファイル数を制御できます。非常に大きな値を設定すると、GEN0
バックグラウンド・プロセスが長時間実行される場合があります。 -
Oracle Database Standard Editionでは、統合監査の表領域は1回のみ関連付けることができます。この関連付けは、統合監査証跡の監査レコードを生成する前に行う必要があります。デフォルトの表領域は
SYSAUX
です。関連付け後は、Standard Editionで表領域を変更することはできません。これは、パーティション化機能がStandard Editionでサポートされていないためです。
例
次の例では、オペレーティング・システム(OS)監査証跡にOS_FILE_MAX_SIZE
プロパティを設定するために、SET_AUDIT_TRAIL_PROPERTY
プロシージャをコールしています。このプロパティ値を102400に設定しています。これは、現行の監査ファイルのサイズが100MBに達するたびに、新しい監査ファイルが作成されることを意味します。
BEGIN DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS, audit_trail_property => DBMS_AUDIT_MGMT.OS_FILE_MAX_SIZE, audit_trail_property_value => 102400 /* 100MB*/ ); END;
次の例では、オペレーティング・システム(OS)監査証跡にOS_FILE_MAX_AGE
プロパティを設定するために、SET_AUDIT_TRAIL_PROPERTY
プロシージャをコールしています。このプロパティ値を5に設定しています。これは、6日目ごとに新しい監査ファイルが作成されることを意味します。
BEGIN DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS, audit_trail_property => DBMS_AUDIT_MGMT.OS_FILE_MAX_AGE, audit_trail_property_value => 5 /* days */); END;
次の例では、AUDIT_TRAIL_AUD_STD
監査証跡にDB_DELETE_BATCH_SIZE
プロパティを設定するために、SET_AUDIT_TRAIL_PROPERTY
プロシージャをコールしています。このプロパティ値を100000に設定しています。これは、クリーンアップ操作時に、サイズ100000のバッチで監査レコードがSYS.AUD$
表から削除されることを意味します。
BEGIN DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, audit_trail_property => DBMS_AUDIT_MGMT.DB_DELETE_BATCH_SIZE, audit_trail_property_value => 100000 /* delete batch size */); END;
31.7.18 SET_LAST_ARCHIVE_TIMESTAMPプロシージャ
このプロシージャは、監査レコードが最後にアーカイブされた日時を示すタイムスタンプを設定します。監査管理者は、監査レコードに連結するタイムスタンプを設定します。
CLEAN_AUDIT_TRAILプロシージャは、このタイムスタンプを使用して、削除する監査レコードを決定します。
構文
DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP( audit_trail_type IN PLS_INTEGER, last_archive_time IN TIMESTAMP, rac_instance_number IN PLS_INTEGER DEFAULT NULL, container IN PLS_INTEGER DEFAULT CONTAINER_CURRENT, database_id IN NUMBER DEFAULT NULL, container_guid IN VARCHAR2 DEFAULT NULL);
パラメータ
表31-24 SET_LAST_ARCHIVE_TIMESTAMPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
タイムスタンプを設定する必要がある監査証跡タイプ。監査証跡タイプは表31-1に示されています。 |
|
削除される監査レコードまたはファイルに基づく ノート: 将来の日付またはTIMESTAMP 値を指定すると、ORA-46250 エラーがスローされます。
|
|
Oracle Real Application Clusters(Oracle RAC)インスタンスのインスタンス番号。デフォルト値は AUDIT_TRAIL_TYPE に値がある場合、rac_instance_number パラメータは受け入れられません。
シングル・インスタンス・データベースの場合は、 |
|
値は、接続されたプラガブル・データベース(PDB)の場合は |
|
クリーンアップする監査レコードのデータベースID (DBID) |
|
クリーンアップする監査レコードのコンテナのGUID ノート: このパラメータは非推奨になりましたが、現在は下位互換性のために残されています。 |
使用上のノート
次の使用上のノートが適用されます。
-
監査証跡タイプが
AUDIT_TRAIL_AUD_STD
、AUDIT_TRAIL_FGA_STD
またはAUDIT_TRAIL_UNIFIED
の場合、last_archive_time
は協定世界時(UTC)で指定する必要があります。これは、データベース監査証跡がタイムスタンプをUTCで格納するためです。UTCはグリニッジ標準時(GMT)とも呼ばれます。 -
監査証跡タイプが
AUDIT_TRAIL_OS
またはAUDIT_TRAIL_XML
の場合、last_archive_time
はローカル・タイム・ゾーンの日時で指定する必要があります。タイム・ゾーンは、OSまたはXML監査ファイルが作成されたマシンのタイム・ゾーンである必要があります。これは、オペレーティング・システム監査ファイルが、監査ファイルの最終変更タイムスタンプ・プロパティに基づいて消去されるためです。最終変更タイムスタンプ・プロパティの値は、マシンのローカル・タイム・ゾーンに格納されています。 -
Oracle Real Application Clusters(Oracle RAC)データベースを使用している場合は、個々のOracle RACノードを同期化するためにネットワーク・タイム・プロトコル(NTP)を使用することをお薦めします。
-
SET_LAST_ARCHIVE_TIMESTAMP
プロシージャとCLEAN_AUDIT_TRAIL
プロシージャは、同じトランザクション・ブロックでは実行できません。そうしないと、通常、結果を予測できなくなります。 -
このタイムスタンプに将来の日付が設定されている場合は、エラーが戻されます。
CLEAN_AUDIT_TRAIL
プロシージャをコールする前に、SET_LAST_ARCHIVE_TIMESTAMP
のトランザクションが完了していることを確認します。SET_LAST_ARCHIVE_TIMESTAMP
(UTC形式)で指定された時間までレコードのクリーンに関して予測可能な結果を得るには、SET_LAST_ARCHIVE_TIMESTAMP
プロシージャとCLEAN_AUDIT_TRAIL
プロシージャが同じトランザクションでコールされていないことを確認します。CLEAN_AUDIT_TRAIL
プロシージャをコールする前に、commit
を実行することをお薦めします。-
データベース・リンクを使用して
SET_LAST_ARCHIVE_TIMESTAMP
を呼び出す場合は、ソース・データベースとターゲット・データベースの間に時差がある可能性があることをわかっておいてください。
例
次の例では、Oracle RACインスタンス1にあるオペレーティング・システム(OS)監査証跡タイプに最終アーカイブ・タイムスタンプを設定するために、SET_LAST_ARCHIVE_TIMESTAMP
プロシージャをコールしています。TO_TIMESTAMP
ファンクションを使用して、文字列をタイムスタンプ値に変換しています。
use_last_arch_timestamp
をTRUE
に設定した状態でその後にCLEAN_AUDIT_TRAILプロシージャをコールすると、2012年9月10日14:10:10.0以前に変更された現在のAUDIT_FILE_DEST
ディレクトリからすべてのOS監査ファイルが削除されます。
BEGIN DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP( audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS, last_archive_time => TO_TIMESTAMP('12-SEP-0714:10:10.0','DD-MON-RRHH24:MI:SS.FF'), rac_instance_number => 1); END;
31.7.19 SET_PURGE_JOB_INTERVALプロシージャ
このプロシージャは、指定したパージ・ジョブでCLEAN_AUDIT_TRAILプロシージャをコールする間隔を設定します。
このパージ・ジョブは、CREATE_PURGE_JOBプロシージャを使用して作成済である必要があります。
構文
DBMS_AUDIT_MGMT.SET_PURGE_JOB_INTERVAL( audit_trail_purge_name IN VARCHAR2, audit_trail_interval_value IN PLS_INTEGER) ;
パラメータ
表31-25 SET_PURGE_JOB_INTERVALプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
間隔を設定するパージ・ジョブの名前。この名前は、CREATE_PURGE_JOBプロシージャで指定したパージ・ジョブの名前です。 |
|
クリーンアップ・プロシージャがコールされる間隔(時間単位)。この値によって、CREATE_PURGE_JOBプロシージャで設定された |
使用上のノート
このプロシージャを使用して、CREATE_PURGE_JOBプロシージャで設定されたaudit_trail_purge_interval
パラメータを変更します。
例
次の例では、CLEANUP
という名前のパージ・ジョブを起動する頻度を変更するために、SET_PURGE_JOB_INTERVAL
プロシージャをコールしています。新しい間隔は24時間に設定されています。
BEGIN DBMS_AUDIT_MGMT.SET_PURGE_JOB_INTERVAL( AUDIT_TRAIL_PURGE_NAME => 'CLEANUP', AUDIT_TRAIL_INTERVAL_VALUE => 24 ); END;
31.7.20 SET_PURGE_JOB_STATUSプロシージャ
このプロシージャは、指定したパージ・ジョブを使用可能または使用禁止にします。
このパージ・ジョブは、CREATE_PURGE_JOBプロシージャを使用して作成済である必要があります。
構文
DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS( audit_trail_purge_name IN VARCHAR2, audit_trail_status_value IN PLS_INTEGER) ;
パラメータ
表31-26 SET_PURGE_JOB_STATUSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ステータスを設定するパージ・ジョブの名前。この名前は、CREATE_PURGE_JOBプロシージャで指定したパージ・ジョブの名前です。 |
|
表31-3に指定されている値のいずれか。 値 値 |
例
次の例では、CLEANUP
パージ・ジョブを使用可能にするために、SET_PURGE_JOB_STATUSプロシージャをコールしています。
BEGIN DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS( audit_trail_purge_name => 'CLEANUP', audit_trail_status_value => DBMS_AUDIT_MGMT.PURGE_JOB_ENABLE); END;
31.7.21 TRANSFER_UNIFIED_AUDIT_RECORDSプロシージャ
このプロシージャは、事前にアップグレードされたOracle Database内の統合監査レコードを、読取りパフォーマンスを向上するように設計された内部リレーショナル表に転送します。
構文
事前にアップグレードされたOracle Databaseでは、これらのレコードは共通ロギング・インフラストラクチャ(CLI)のSGAバックエンド表内に存在します。
DBMS_AUDIT_MGMT.TRANSFER_UNIFIED_AUDIT_RECORDS ( container_guid IN VARCHAR2 DEFAULT NULL);
パラメータ
表31-27 TRANSFER_UNIFIED_AUDIT_RECORDSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
関連付けられたCLIバックエンド表のコンテナのGUID。このバックエンド表には、事前にアップグレードされたOracle Databaseからの監査レコードが格納されます。この設定を省略すると、現在のコンテナのGUIDが使用されます。 |
使用上のノート
-
アップグレード後の
DBMS_AUDIT_MGMT.TRANSFER_UNIFIED_AUDIT_RECORDS
の実行は必須ではありませんが、統合監査証跡の読取りパフォーマンスを向上するために、このプロシージャを実行することをお薦めします。 -
DBMS_AUDIT_MGMT.TRANSFER_UNIFIED_AUDIT_RECORDS
は、Oracle Database 12cリリース12.1からのアップグレード後に1回かぎりの操作として実行するように設計されています。 -
コンテナのGUIDごとに1つのCLIバックエンド表があります。
DBA_PDB_HISTORY
データ・ディクショナリ・ビューのPDB_GUID
列を問い合せることで、コンテナのGUIDを確認できます。これらの各GUIDを1つずつ渡してDBMS_AUDIT_MGMT.TRANSFER_UNIFIED_AUDIT_RECORDS
プロシージャを実行し、統合監査レコードをこれらのCLIバックエンド表からAUDSYS.AUD$UNIFIED
表に確実に移動します。 -
マルチテナント環境では、ルートであるか個々のPDBであるかに関係なく、転送操作が適用されるコンテナ内でのみ
DBMS_AUDIT_MGMT.TRANSFER_UNIFIED_AUDIT_RECORDS
プロシージャを実行する必要があります。たとえば、このプロシージャをルートで実行してPDB内の監査レコードを転送することはできません。 -
監査レコードの生成率が高く、データベースでパーティション化がサポートされている場合は、
DBMS_AUDIT_MGMT.ALTER_PARTITION_INTERVAL
プロシージャを使用して内部リレーショナル表のパーティション間隔設定を変更できます。詳細は、「ALTER_PARTITION_INTERVALプロシージャ」を参照してください。