25 監査証跡の管理
AUDIT_ADMIN
ロールを付与されているユーザーは、監査証跡の管理、監査証跡のアーカイブおよび監査証跡レコードの削除を実行できます。
- 統合監査証跡の管理
監査はデフォルトで有効ですが、監査レコードがディスクに書き込まれるタイミングを制御できます。 - 監査証跡のアーカイブ
従来のオペレーティング・システム、統合データベースおよび従来のデータベースの監査証跡をアーカイブできます。 - 監査証跡レコードの削除
DBMS_AUDIT_MGMT
PL/SQLパッケージを使用して、自動削除ジョブをスケジューリングして、監査レコードを手動で削除し、他の監査証跡操作を実行できます。 - 監査証跡管理のデータ・ディクショナリ・ビュー
Oracle Databaseには、監査証跡の管理設定に関する情報を表示するデータ・ディクショナリ・ビューが用意されています。
親トピック: 監査を使用したデータベース・アクティビティの監視
25.1 統合監査証跡の管理
監査はデフォルトで有効ですが、監査レコードがディスクに書き込まれるタイミングを制御できます。
- 監査レコードが作成されるときと場所
監査は常に有効になっています。Oracle Databaseは、監査対象のSQL文の実行フェーズ中または実行フェーズ後に監査レコードを生成します。 - 強制的に監査されるアクティビティ
セキュリティ・センシティブな特定のデータベース・アクティビティは常に監査され、このような監査構成は無効化できません。 - カーソルが監査に与える影響
カーソル内で監査対象の操作が実行されるたびに、Oracle Databaseでは監査証跡に監査レコードが1つ挿入されます。 - AUDSYSスキーマへの統合監査証跡レコードの書込み
Oracle Databaseは、監査レコードをAUDSYS
スキーマの内部リレーショナル表に自動的に書き込みます。 - SYSLOGまたはWindowsイベントビューアへの統合監査証跡レコードの書込み
初期化パラメータを設定することによって、SYSLOGまたはWindowsイベントビューアに統合監査証跡レコードを書き込むことができます。 - 監査レコードがオペレーティング・システムに書き込まれる場合
データベース表が統合監査レコードを受け入れられない場合、これらのレコードはオペレーティング・システムの過剰監査ファイル(.bin
形式)に書き込まれます。 - 統合監査証跡へのオペレーティング・システムの監査レコードの移動
スピルオーバー監査ファイルに書き込まれた監査レコードは、統合監査証跡データベース表に移動できます。 - Oracle Data Pumpを使用した統合監査証跡のエクスポートおよびインポート
Oracle Database Pumpのエクスポートおよびインポート用ダンプ・ファイルに統合監査証跡を含めることができます。 - 統合監査の無効化
統合監査を無効にすることができます。
関連トピック
親トピック: 監査証跡の管理
25.1.1 監査レコードが作成されるときと場所
監査は常に有効になっています。Oracle Databaseは、監査対象のSQL文の実行フェーズ中または実行フェーズ後に監査レコードを生成します。
PL/SQLプログラム・ユニット内のSQL文は、プログラム・ユニットの実行時に必要に応じて個別に監査されます。
統合監査証跡の読取りパフォーマンスを高めるために、統合監査レコードはディスクのAUDSYS
スキーマの内部リレーショナル表に即座に書き込まれます。以前のリリースでは、統合監査レコードはSecureFile LOBに書き込まれていました。Oracle Database 12cリリース1 (12.1)の統合監査に移行済の場合は、SecureFile LOBからこの内部表に統合監査レコードを手動で転送できます。使用中のデータベースのバージョンがパーティション化された表をサポートしている場合、この内部表はパーティション化された表です。この場合は、DBMS_AUDIT_MGMT.ALTER_PARTITION_INTERVAL
プロシージャを使用して表のパーティション間隔を変更できます。この表のパーティション化されたバージョンは、デフォルトのパーティション間隔が1か月のパーティション・キーとしてEVENT_TIMESTAMP
タイムスタンプに基づいています。データベース・バージョンがパーティショニングをサポートしていない場合、内部表は標準のもので、パーティション化されていない表です。
監査証跡レコードの生成と挿入は、ユーザー・トランザクションのコミットからは独立して実行されます。つまり、ユーザー・トランザクションがロールバックされても、監査証跡レコードはコミットされたままになります。
データベース・ユーザーがデータベースに接続した時点で有効になる統合監査ポリシーの文監査オプションと権限監査オプションは、そのセッションの持続期間中は有効です。セッションがすでにアクティブになっている場合、文または権限の統合監査のオプションを設定または変更しても、そのセッション中は有効になりません。修正した文監査オプションまたは権限監査オプションは、カレント・セッションを終了し、新しいセッションを作成した時点で有効になります。
一方、オブジェクト監査オプションについて変更した内容は、カレント・セッションでただちに有効になります。
デフォルトでは、監査証跡レコードはSYSAUX
表領域のAUDSYS
スキーマに書き込まれます。DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION
プロシージャを使用して、暗号化されている表領域を含め、異なる表領域を指定できます。
関連項目:
-
監査証跡レコードを
AUDSYS
に書き込む方法の詳細は、AUDSYSスキーマへの統合監査証跡レコードの書込みを参照してください -
アップグレード後の統合監査レコードの転送の詳細は、Oracle Databaseアップグレード・ガイドを参照してください
親トピック: 統合監査証跡の管理
25.1.2 強制的に監査されるアクティビティ
セキュリティ・センシティブな特定のデータベース・アクティビティは常に監査され、このような監査構成は無効化できません。
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューでは、SYSDBA
、SYSBACKUP
、SYSKM
などの管理ユーザーからのアクティビティを取得します。統合監査証跡を監査する必要はありません。統合監査証跡は、AUDSYS
スキーマ内の読取り専用表にあります。したがって、統合監査証跡ビューに対するDMLは許可されません。AUDSYS
スキーマからの基礎となるディクショナリ表に対するDMLおよびDDL操作も許可されません。
SYSTEM_PRIVILEGE_USED
列は、アクティビティに使用された管理権限のタイプを示します。
監査ポリシーの変更など、次の監査関連のアクティビティは強制的に監査されます。
-
CREATE AUDIT POLICY
-
ALTER AUDIT POLICY
-
DROP AUDIT POLICY
-
AUDIT
-
NOAUDIT
-
DBMS_FGA
PL/SQLパッケージのEXECUTE
-
DBMS_AUDIT_MGMT
PL/SQLパッケージのEXECUTE
-
AUDSYS
監査証跡表でのALTER TABLE
の試行(この表は監査できません) -
管理ユーザー
SYS
、SYSDBA
、SYSOPER
、SYSASM
、SYSBACKUP
、SYSDG
およびSYSKM
によるトップ・レベルの文(データベースがオープンするまで)。データベースがオープンされると、Oracle Databaseはシステムの監査構成(AUDIT
文のBY
句などを使用して適用された構成だけでなく、AUDIT
文にBY
句がない場合や、EXCEPT
句が使用され、これらのユーザーが除外されなかった場合に、すべてのユーザーに対して適用された構成)を使用して、これらのユーザーを監査します。 -
SYS.AUD$
およびSYS.FGA_LOG$
ディクショナリ表に対してユーザーが発行したすべてのDML文 -
統合監査内部表のデータまたはメタデータの変更。この表に対する
SELECT
文はデフォルトで、または強制的に監査されます。 -
Oracle Database Vaultに対して行われるすべての構成変更
-
オプティマイザ・ディクショナリ表内の機密列へのアクセス。
DBMS_STATS
パッケージによるこれらの表列への内部アクセスでは、必須の監査レコードは生成されないということに注意してください。オプティマイザ・ディクショナリ表を次に示します。オプティマイザ・ディクショナリ表 列 SYS.HIST_HEAD$
minimum
、maximum
、lowval
、hival
SYS.HISTGRM$
endpoint
、epvalue_raw
SYS.WRI$_OPTSTAT_HISTHEAD_HISTORY
minimum
、maximum
、lowval
、hival
SYS.WRI$_OPSTAT_HISTGRM_HISTORY
endpoint
、epvalue_raw
25.1.3 カーソルが監査に与える影響
カーソル内で監査対象の操作が実行されるたびに、Oracle Databaseでは監査証跡に監査レコードが1つ挿入されます。
カーソルを再利用させるイベントは、次のとおりです。
-
カーソルを再利用のためにオープン状態にしておく、Oracle Formsなどのアプリケーション
-
新しいバインド変数を使用したカーソルの継続実行
-
1つのカーソルを再利用するためにPL/SQLエンジンにより文が最適化される場合に、PL/SQLループ内で実行される文
監査は、カーソルが共有されているかどうかの影響を受けません。それぞれのユーザーは、カーソルの最初の実行時に自分の監査証跡レコードを作成します。
親トピック: 統合監査証跡の管理
25.1.4 AUDSYSスキーマへの統合監査証跡レコードの書込み
Oracle Databaseは、監査レコードをAUDSYS
スキーマの内部リレーショナル表に自動的に書き込みます。
Oracle Database 12cリリース1 (12.1)では、監査レコードをメモリー(キュー書込みモード)にキューイングし、AUDSYS
スキーマ監査表に定期的に書き込むオプションがありました。ただし、Oracle Database 12cリリース2 (12.2)以降では、即時書込みモードおよびキュー書込みモードは非推奨です。制御するパラメータ(UNIFIED_AUDIT_SGA_QUEUE_SIZE
、DBMS_AUDIT_MGMT.AUDIT_TRAIL_IMMEDIATE_WRITE
およびDBMS_AUDIT_MGMT.AUDIT_TRAIL_QUEUED_WRITE
)は、まだ表示可能ですが、機能はありません。
監査レコードがAUDSYS
スキーマのリレーショナル表に常に書き込まれる新しい機能によって、インスタンスがクラッシュした場合やSHUTDOWN ABORT
操作時に監査レコードが失われるリスクが回避されます。新しい機能によって、監査証跡とデータベース全体のパフォーマンスも向上します。
Oracle Database 12cリリース1 (12.1)からアップグレードし、そのリリースの統合監査に移行した場合は、DBMS_AUDIT_MGMT.TRANSFER_UNIFIED_AUDIT_RECORDS
プロシージャを使用して、以前のリリースで生成された監査レコードをAUDSYS
監査内部表に転送することをお薦めします。アップグレード後の統合監査レコードの転送の詳細は、Oracle Databaseアップグレード・ガイドを参照してください。
関連トピック
親トピック: 統合監査証跡の管理
25.1.5 SYSLOGまたはWindowsイベントビューアへの統合監査証跡レコードの書込み
初期化パラメータを設定することによって、SYSLOGまたはWindowsイベントビューアに統合監査証跡レコードを書き込むことができます。
- SYSLOGまたはWindowsイベントビューアへの統合監査証跡レコードの書込みについて
この機能を使用して、一部の主要な統合監査フィールドをSYSLOGまたはWindowsイベントビューアに書き込むことができます。 - 統合監査証跡のsyslogおよびWindowsイベントビューアによる取得の有効化
統合監査証跡レコードのサブセットをUNIXのsyslog
またはWindowsイベントビューアに書き込むには、UNIFIED_AUDIT_SYSTEMLOG
初期化パラメータを設定する必要があります。
親トピック: 統合監査証跡の管理
25.1.5.1 SYSLOGまたはWindowsイベントビューアへの統合監査証跡レコードの書込みについて
この機能を使用すると、一部の主要な統合監査フィールドをSYSLOGまたはWindowsイベントビューアに書き込むことができます。
この機能は、UNIXシステムおよびMicrosoft Windowsシステムの両方で構成できます。Windowsシステムでは、これを有効または無効のいずれかにします。有効な場合は、レコードがWindowsイベントビューアに書き込まれます。
UNIXシステムでは、SYSLOGに対する統合監査証跡レコードの取得を微調整して、SYSLOGレコードが送信される機能を指定したり、レコードの重大度レベル(たとえば、デバッグ関連メッセージを取得する場合はDEBUG
)を指定したりできます。
表25-1は、SYSLOGおよびWindowsイベントビューアに書き込まれる統合監査レコード・フィールドに指定される名前を、UNIFIED_AUDIT_TRAIL
ビューの対応する列名にマップしたものです。
表25-1 SYSLOGおよびWindowsイベントビューアの監査レコードのフィールド名
フィールド名 | UNIFIED_AUDIT_TRAILの列名 | 列タイプ | 列の説明 |
---|---|---|---|
|
|
|
監査レコードのタイプ |
|
|
|
データベース識別子 |
|
|
|
セッション識別子 |
|
|
|
セッションでのクライアント識別子 |
|
|
|
システムの各監査レコードの識別子 |
|
|
|
システムで実行されている各文の識別子 |
|
|
|
セッション・ユーザー |
|
|
|
監査対象イベントの有効なユーザー |
|
|
|
監査対象イベントのアクション・コード |
|
|
|
監査対象イベントのリターン・コード |
|
|
|
オブジェクトのスキーマ名。 |
|
|
|
オブジェクト名 |
25.1.5.2 統合監査証跡のsyslogおよびWindowsイベントビューアによる取得の有効化
統合監査証跡レコードのサブセットをUNIXのsyslog
またはWindowsイベントビューアに書き込むには、UNIFIED_AUDIT_SYSTEMLOG
初期化パラメータを設定する必要があります。
UNIFIED_AUDIT_SYSTEMLOG
のデフォルトは、Microsoft WindowsシステムではFALSE
です。UNIXシステムでは、デフォルトはありません。Oracle Real Application Clusters (Oracle RAC)環境では、各Oracle RACインスタンス上のこのパラメータを同じ値に設定します。
25.1.6 監査レコードがオペレーティング・システムに書き込まれる場合
データベース表が統合監査レコードを受け入れられない場合、これらのレコードはオペレーティング・システムの過剰監査ファイル(.bin
形式)に書き込まれます。
データベース表への書込み機能は、監査表領域がオフライン、表領域が読取り専用、表領域がいっぱい、データベースが読取り専用などの場合、失敗する可能性があります。統合監査レコードは、OSディスク領域がいっぱいになるまで、OSの過剰ファイルに書き込まれます。この時点で、OSに監査レコードの空き領域がない場合、ユーザー監査可能なトランザクションは「ORA-02002 監査証跡への書込み中にエラーが発生しました。」
エラーで失敗します。この問題を回避するために、監査証跡を定期的に削除することをお薦めします。
関連トピック
親トピック: 統合監査証跡の管理
25.1.7 統合監査証跡へのオペレーティング・システムの監査レコードの移動
スピルオーバー監査ファイルに書き込まれた監査レコードは、統合監査証跡データベース表に移動できます。
データベースが書込み可能でない場合(データベースのマウント中など)、データベースがクローズされている場合、または読取り専用の場合は、Oracle Databaseによって、監査レコードがこれらの外部ファイルに書き込まれます。これらの外部ファイルのデフォルトの場所は、$ORACLE_BASE/audit/$ORACLE_SID
ディレクトリです。
DBMS_AUDIT_MGMT.LOAD_UNIFIED_AUDIT_FILES
プロシージャを実行して、データベースにファイルをロードできます。多くのオペレーティング・システム監査レコードを外部ファイルに移動している場合は、パフォーマンスが影響を受ける場合があるので注意してください。
データベースが書込み可能な場合に、これらのファイルの監査レコードをAUDSYS
スキーマ監査表に移動するには:
監査レコードはAUDSYS
スキーマ監査表に即座にロードされ、$ORACLE_BASE/audit/$ORACLE_SID
ディレクトリから削除されます。
親トピック: 統合監査証跡の管理
25.1.8 Oracle Data Pumpを使用した統合監査証跡のエクスポートおよびインポート
Oracle Database Pumpのエクスポートおよびインポート用ダンプ・ファイルに統合監査証跡を含めることができます。
統合監査証跡は、Oracle Data Pumpを使用した、データベース全体または部分的なデータベースのいずれかのエクスポートおよびインポート操作に自動的に含められます。たとえば、部分的データベース・エクスポートの操作で統合監査証跡の表のみをエクスポートする必要がある場合は、次のexpdp
コマンドを入力できます。
- SQL*Plusで、スピルオーバー監査ファイルに書き込まれたすべてのオペレーティング・システム監査レコードを統合監査証跡の表に移動します。これにより、すべてのレコードがエクスポートされます。
- オペレーティング・システムのプロンプトから、次のコマンドを実行します。
expdp system full=y directory=aud_dp_dir logfile=audexp_log.log dumpfile=audexp_dump.dmp version=18.02.00.02.00 INCLUDE=AUDIT_TRAILS Password: password
次に、エクスポート・ダンプ・ファイルを読み込んで、エクスポートされたすべてのコンテンツをインポートできます。この操作では、統合監査証跡表のみがインポートされます。
impdp system
full=y
directory=aud_dp_dir
dumpfile=audexp_dump.dmp
logfile=audimp_log.log
Password: password
この操作を実行するために特別な構成を行う必要はありません。ただし、エクスポート操作を実行する場合はEXP_FULL_DATABASE
ロールを持っている必要があり、インポート操作を実行する場合はIMP_FULL_DATABASE
ロールを持っている必要があります。
親トピック: 統合監査証跡の管理
25.1.9 統合監査の無効化
統合監査を無効にすることができます。
-
現在有効となっている統合監査ポリシーをすべて無効化します。
このステップは、このプロシージャが完了したときに、データベースが混合モード監査に入ることを防ぎます。
-
AUDIT_ADMIN
ロールを割り当てられているユーザーとして、データベース・インスタンスにログインします。 -
有効な統合監査ポリシーを検索するには、
AUDIT_UNIFIED_ENABLED_POLICIES
データ・ディクショナリ・ビューのPOLICY_NAME
列およびENABLED_OPT
列を問い合せます。 -
NOAUDIT POLICY
文を実行して有効になっている各ポリシーを無効にします。たとえば、ユーザー
psmith
に適用されたポリシーを無効にするには、次のようにします。NOAUDIT POLICY audit_pol BY psmith;
-
-
SYSOPER
権限を持つユーザーSYS
として接続します。CONNECT sys as sysoper Enter password: password
マルチテナント環境の場合は、このコマンドによりルートに接続されます。
-
データベースを停止します。
たとえば:
SHUTDOWN IMMEDIATE
マルチテナント環境の場合は、このコマンドによりCDB内のすべてのPDBが終了します。
-
プラットフォームに応じて次のようにします。
-
UNIXシステム: 次のコマンドを実行します。
cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk uniaud_off ioracle
-
Windowsシステム:
%ORACLE_HOME%/bin/orauniaud12.dll
ファイルの名前を%ORACLE_HOME%/bin/orauniaud12.dll.dbl
に変更します。
マルチテナント環境の場合は、これらのアクションによりCDB内のすべてのPDBの統合監査が無効化されます。
-
-
SQL*Plusで、データベースを再起動します。
STARTUP
マルチテナント環境の場合は、このコマンドによりCDB内のすべてのPDBが再起動します。
関連トピック
親トピック: 統合監査証跡の管理
25.2 監査証跡のアーカイブ
従来のオペレーティング・システム、統合データベースおよび従来のデータベースの監査証跡をアーカイブできます。
- 従来のオペレーティング・システム監査証跡のアーカイブ
Oracle Databaseをアップグレードした後に、従来のオペレーティング・システム監査ファイルのアーカイブを作成できます。 - 統合監査証跡および従来のデータベースの監査証跡のアーカイブ
監査証跡は、大きくなりすぎないように定期的にアーカイブし、削除する必要があります。
親トピック: 監査証跡の管理
25.2.1 従来のオペレーティング・システム監査証跡のアーカイブ
Oracle Databaseをアップグレードした後に、従来のオペレーティング・システム監査ファイルのアーカイブを作成できます。
アップグレードしたデータベースから従来のオペレーティング・システムの監査証跡をアーカイブするには、プラットフォーム固有のオペレーティング・システム・ツールを使用して、従来のオペレーティング・システム監査ファイルのアーカイブを作成します。
-
従来のオペレーティング・システム監査ファイルをアーカイブするには、次の方法を使用します。
-
Oracle Audit Vault and Database Firewallを使用します。Oracle Databaseとは別にOracle Audit Vault and Database Firewallをインストールします。
-
テープまたはディスクにバックアップを作成します。監査ファイルの圧縮ファイルを作成し、それをテープまたはディスクに格納できます。詳細は、使用しているオペレーティング・システムのマニュアルを参照してください。
-
その後、監査証跡の領域を解放して監査証跡管理を容易にするために、従来のオペレーティング・システム監査レコードをパージ(削除)する必要があります。
親トピック: 監査証跡のアーカイブ
25.2.2 統合監査証跡および従来のデータベースの監査証跡のアーカイブ
監査証跡は、大きくなりすぎないように定期的にアーカイブし、パージする必要があります。
アーカイブと削除により、監査証跡の領域が解放され、データベース監査証跡の削除が容易になります。
統合および従来のデータベースの監査証跡のアーカイブを作成するには、Oracle Audit Vault and Database Firewallを使用します。Oracle Databaseとは別にOracle Audit Vault and Database Firewallをインストールします。
アーカイブが完了したら、データベース監査証跡の内容を削除できます。
-
統合監査レコード、従来の標準監査レコードおよび従来のファイングレイン監査レコードをアーカイブするには、関連するレコードを通常のデータベース表にコピーします。
たとえば:
INSERT INTO table SELECT ... FROM UNIFIED_AUDIT_TRAIL ...; INSERT INTO table SELECT ... FROM SYS.AUD$ ...; INSERT INTO table SELECT ... FROM SYS.FGA_LOG$ ...;
関連トピック
親トピック: 監査証跡のアーカイブ
25.3 監査証跡レコードの削除
DBMS_AUDIT_MGMT
PL/SQLパッケージを使用して、自動削除ジョブをスケジューリングして、監査レコードを手動で削除し、他の監査証跡操作を実行できます。
- 監査証跡レコードの削除について
様々な方法を使用して、監査証跡レコードを削除できます。 - 監査証跡の削除方法の選択
スケジュールに基づいて定期的に、または日時を指定して削除を実行できます。 - 監査証跡の自動削除ジョブのスケジューリング
自動削除ジョブをスケジューリングするには、オンラインREDOログとアーカイブREDOログのサイズのチューニングなどについて事前に計画する必要があります。 - 監査証跡の手動削除
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL
プロシージャを使用して、監査証跡を手動で削除できます。 - 他の監査証跡削除操作
監査証跡削除には、監査証跡削除ジョブの有効化と無効化や、監査証跡削除ジョブのデフォルト間隔の設定なども含まれます。 - 例: 統合監査証跡の削除操作の直接コール
カスタマイズされたアーカイブ・プロシージャを作成して、統合監査証跡の削除操作を直接コールできます。
関連トピック
親トピック: 監査証跡の管理
25.3.1 監査証跡レコードの削除について
様々な方法を使用して、監査証跡レコードをパージできます。
監査証跡レコードは、定期的にアーカイブしてから削除するようにしてください。監査証跡レコードのサブセットを削除したり、指定した時間間隔で実行する削除ジョブを作成したりできます。Oracle Databaseでは、アーカイブ・タイムスタンプより前に作成された監査証跡レコードが削除されるか、すべての監査証跡レコードが削除されます。読取り/書込みデータベースおよび読取り専用データベースの両方で監査証跡レコードを削除できます。
削除プロセスでは、統合監査証跡だけでなく、前のリリースのOracle Databaseの監査証跡も考慮されます。たとえば、オペレーティング・システムまたはXMLの監査レコードが含まれるアップグレード済のデータベースを移行した場合は、この項のプロシージャを使用して、それらをアーカイブして削除できます。
監査証跡の削除タスクを実行するには、DBMS_AUDIT_MGMT
PL/SQLパッケージを使用します。DBMS_AUDIT_MGMT
パッケージを使用するには、AUDIT_ADMIN
ロールが必要です。Oracle Databaseでは、DBMS_AUDIT_MGMT
PL/SQLパッケージ・プロシージャのすべての実行を強制的に監査します。
Oracle Audit Vault and Database Firewallをインストールしている場合は、監査証跡パージ・プロセスは、このマニュアルで説明している手順とは異なります。たとえば、Oracle Audit Vaultでは、監査証跡が自動的にアーカイブされます。
ノート:
Oracle Databaseでは、監査証跡からのレコードの削除はすべて例外なく監査されます。
関連項目:
-
DBMS_AUDIT_MGMT
PL/SQLパッケージの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください -
DBA_AUDIT_MGMT
関連のビューの詳細は、『Oracle Databaseリファレンス』を参照してください。
親トピック: 監査証跡レコードの削除
25.3.2 監査証跡の削除方法の選択
スケジュールに基づいて、または日時を指定して削除を実行できます。
- スケジュールに基づいた監査証跡の定期的な削除
すべての監査レコード、または指定したタイムスタンプより前に作成された監査レコードをスケジュールに基づいて定期的に削除できます。 - 指定時間での監査証跡の手動削除
削除スケジュールを作成するのではなく、1回の手動操作で監査レコードを即座に削除できます。
親トピック: 監査証跡レコードの削除
25.3.2.1 スケジュールに基づいた監査証跡の定期的なパージ
すべての監査レコード、または指定したタイムスタンプより前に作成された監査レコードをスケジュールに基づいて定期的にパージできます。
- 必要に応じて、監査表の削除プロセス中に追加生成されるレコードに対応するために、オンラインREDOログとアーカイブREDOログのサイズをチューニングします。
- タイムスタンプおよびアーカイブ方針を計画します。
- オプションで、監査レコードのアーカイブ・タイムスタンプを設定します。
- 削除ジョブを作成してスケジューリングします。
関連トピック
親トピック: 監査証跡の削除方法の選択
25.3.2.2 指定時間での監査証跡の手動パージ
削除スケジュールを作成するのではなく、1回の手動操作で監査レコードを即座に削除できます。
- 必要に応じて、監査表の削除プロセス中に追加生成されるレコードに対応するために、オンラインREDOログとアーカイブREDOログのサイズをチューニングします。
- タイムスタンプおよびアーカイブ方針を計画します。
- オプションで、監査レコードのアーカイブ・タイムスタンプを設定します。
- 削除操作を実行します。
関連トピック
親トピック: 監査証跡の削除方法の選択
25.3.3 監査証跡の自動削除ジョブのスケジューリング
自動削除ジョブをスケジューリングするには、オンラインREDOログとアーカイブREDOログのサイズのチューニングなどについて事前に計画する必要があります。
- 自動削除ジョブのスケジューリングについて
監査証跡全体を削除することも、タイムスタンプより前に作成された一部の監査証跡のみを削除することもできます。 - ステップ1: オンラインREDOログとアーカイブREDOログのサイズのチューニング(必要に応じて)
削除プロセスでは、REDOログが追加生成される場合があります。 - ステップ2: タイムスタンプおよびアーカイブ方針の計画
監査レコードをアーカイブするには、これらのレコードのタイムスタンプを記録する必要があります。 - ステップ3: 監査レコードのアーカイブ・タイムスタンプの設定(必要に応じて)
すべての監査証跡を削除する場合は、このステップを省略できます。 - ステップ4: 削除ジョブの作成とスケジューリング
DBMS_AUDIT_MGMT
PL/SQLパッケージを使用して、削除ジョブを作成およびスケジューリングできます。
親トピック: 監査証跡レコードの削除
25.3.3.1 自動削除ジョブのスケジューリングについて
監査証跡全体を削除することも、タイムスタンプより前に作成された一部の監査証跡のみを削除することもできます。
タイムスタンプより前に作成された個々の監査レコードを削除できます。
監査証跡(特に、大きなもの)を削除する場合は、完了するまでに時間がかかることがあります。削除ジョブは、データベースの負荷が低い時間帯に実行するようにスケジューリングするのが賢明です。
競合しないかぎり、異なる監査証跡タイプに対する複数の削除ジョブを作成できます。たとえば、標準監査証跡表の削除ジョブを作成し、その後でファイングレイン監査証跡表の削除ジョブを作成できます。ただし、DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD
またはDBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL
プロパティを使用して、両方のタイプまたはすべてのタイプをまとめて処理する削除ジョブを作成することはできません。また、DBMS_SCHEDULER
PL/SQLパッケージで作成されるジョブは読取り専用データベースで実行されないことに注意してください。DBMS_AUDIT_MGMT
で作成される自動削除ジョブではDBMS_SCHEDULER
パッケージを使用してタスクをスケジューリングします。したがって、これらのジョブは読取り専用モードで開いているデータベースまたはPDBで実行できません。
親トピック: 監査証跡の自動削除ジョブのスケジューリング
25.3.3.2 ステップ1: オンラインREDOログとアーカイブREDOログのサイズのチューニング(必要に応じて)
削除プロセスでは、REDOログが追加生成される場合があります。
-
必要に応じて、監査表の削除プロセス中に追加生成されるレコードに対応するために、オンラインREDOログとアーカイブREDOログのサイズをチューニングします。
統合監査環境では、混合モードの監査環境と同じ数のREDOログは削除プロセスで生成されないため、統合監査に移行している場合は、このステップを省略できます。
関連項目:
ログ・ファイルのチューニングの詳細は、『Oracle Database管理者ガイド』を参照してください。
親トピック: 監査証跡の自動削除ジョブのスケジューリング
25.3.3.3 ステップ2: タイムスタンプおよびアーカイブ方針の計画
監査レコードをアーカイブするには、これらのレコードのタイムスタンプを記録する必要があります。
-
タイムスタンプの日付を見つけるために、
DBA_AUDIT_MGMT_LAST_ARCH_TS
データ・ディクショナリ・ビューを問い合せます。
その後、削除を実行すると、このアーカイブ・タイムスタンプの日付より前に作成された監査証跡レコードのみが削除されます。
レコードのタイムスタンプを設定したら、アーカイブを開始できます。
25.3.3.4 ステップ3: 監査レコードのアーカイブ・タイムスタンプの設定(必要に応じて)
すべての監査証跡を削除する場合は、このステップを省略できます。
最後に監査レコードがアーカイブされた日時のタイムスタンプを設定できます。アーカイブ・タイムスタンプを設定すると、削除インフラストラクチャのクリーン・アップ・ポイントが指定されます。読取り専用データベースにタイムスタンプを設定する場合、DBMS_AUDIT.MGMT.GET_LAST_ARCHIVE_TIMESTAMP
ファンクションを使用して、それが実行されたインスタンス用に構成された最後のアーカイブ・タイムスタンプを確認します。読取り/書込みデータベースの場合、DBA_AUDIT_MGMT_LAST_ARCH_TS
データ・ディクショナリ・ビューを問い合せます。
統合監査証跡の最終アーカイブ・タイムスタンプを調べるには、DBA_AUDIT_MGMT_LAST_ARCH_TS
データ・ディクショナリ・ビューを問い合せます。タイムスタンプを設定した後でDBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL
PL/SQLプロシージャを実行すると、そのタイムスタンプより前の時間を示すすべての監査レコードが監査証跡から削除されます。アーカイブ・タイムスタンプ設定をクリアする場合は、アーカイブ・タイムスタンプ設定のクリアを参照してください。
Oracle Database Real Application Clustersを使用している場合は、ネットワーク・タイム・プロトコル(NTP)を使用して、Oracle Databaseインスタンスをインストールしている各コンピュータ上の時間を同期化してください。たとえば、1つのOracle RACインスタンス・ノードの時間を午前11:00:00に設定し、次のOracle RACインスタンス・ノードの時間を11:00:05に設定するとします。その結果、2つのノードの時間に矛盾が生じます。ネットワーク・タイム・プロトコル(NTP)を使用して、これらのOracle RACインスタンス・ノードの時間を同期化できます。
削除ジョブのタイムスタンプを設定するには:
親トピック: 監査証跡の自動削除ジョブのスケジューリング
25.3.3.5 ステップ4: 削除ジョブの作成とスケジューリング
DBMS_AUDIT_MGMT
PL/SQLパッケージを使用して、削除ジョブを作成およびスケジューリングできます。
-
DBMS_AUDIT_MGMT.CREATE_PURGE_JOB
PL/SQLプロシージャを実行して、削除ジョブを作成してスケジューリングします。たとえば:
CONNECT aud_admin@hrpdb Enter password: password Connected. BEGIN DBMS_AUDIT_MGMT.CREATE_PURGE_JOB (
AUDIT_TRAIL_TYPE
=> DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, AUDIT_TRAIL_PURGE_INTERVAL => 12, AUDIT_TRAIL_PURGE_NAME => 'Audit_Trail_PJ',USE_LAST_ARCH_TIMESTAMP
=> TRUE, CONTAINER => DBMS_AUDIT_MGMT.CONTAINER_CURRENT); END; /
この例では、次のようになります。
-
AUDIT_TRAIL_TYPE
: 監査証跡タイプを指定します。DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED
は、これを統合監査証跡に設定します。前のリリースの監査データがまだ存在するアップグレード済のデータベースの場合:
-
DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD
は、標準監査証跡表AUD$
に使用されます。(この設定は読取り専用データベースには適用されません。) -
DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD
は、ファイングレイン監査証跡表FGA_LOG$
に使用されます。(この設定は読取り専用データベースには適用されません。) -
DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD
は、標準監査証跡表とファイングレイン監査証跡表の両方に使用されます。(この設定は読取り専用データベースには適用されません。) -
DBMS_AUDIT_MGMT.AUDIT_TRAIL_OS
は、拡張子.aud
が付けられたオペレーティング・システム監査証跡ファイルに使用されます。(この設定はWindowsイベント・ログ・エントリには適用されません。) -
DBMS_AUDIT_MGMT.AUDIT_TRAIL_XML
は、XMLオペレーティング・システム監査証跡ファイルに使用されます。 -
DBMS_AUDIT_MGMT.AUDIT_TRAIL_FILES
は、オペレーティング・システム監査証跡ファイルとXML監査証跡ファイルの両方に使用されます。 -
DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL
は、すべての監査証跡レコード、つまりデータベース監査証跡タイプとオペレーティング・システム監査証跡タイプの両方に使用されます。(この設定は読取り専用データベースには適用されません。)
-
-
AUDIT_TRAIL_PURGE_INTERVAL
は、この削除ジョブを実行する間隔を時間単位で指定します。DBMS_AUDIT_MGMT.CREATE_PURGE_JOB
プロシージャを実行すると、計時が開始されます(この例では、このプロシージャを実行してから12時間後)。後でこの値を更新する場合は、DBMS_AUDIT_MGMT.SET_PURGE_JOB_INTERVAL
プロシージャを実行します。 -
USE_LAST_ARCH_TIMESTAMP
は、次の設定のいずれかを受け入れます。-
TRUE
は、最終アーカイブ・タイムスタンプより前に作成された監査レコードを削除します。最後に記録されたタイムスタンプを確認するには、読取り/書込みデータベースの場合はDBA_AUDIT_MGMT_LAST_ARCH_TS
データ・ディクショナリ・ビューのLAST_ARCHIVE_TS
列を問い合せ、読取り専用データベースの場合はDBMS_AUDIT_MGMT.GET_LAST_ARCHIVE_TIMESTAMP
ファンクションを使用します。デフォルト値はTRUE
です。USE_LAST_ARCH_TIMESTAMP
はTRUE
に設定することをお薦めします。 -
FALSE
は、最終アーカイブ・タイムスタンプを考慮せずに、すべての監査レコードを削除します。削除してはならない監査レコードを誤って削除しないように、この設定を使用する際には注意が必要です。
-
-
CONTAINER
は、マルチテナント環境で削除ジョブを作成する場所を定義するのに使用されます。CONTAINER
をDBMS_AUDIT_MGMT.CONTAINER_CURRENT
に設定すると、現在のPDBからのみ使用および表示可能になり、管理されます。DBMS_AUDIT_MGMT.CONTAINER_ALL
設定では、ジョブがルートに作成されます。定義済のジョブ・スケジュールに従って実行されるグローバル・ジョブとしてジョブを定義します。ジョブが起動されると、マルチテナント環境のすべてのPDBの監査証跡がクリーンアップされます。ジョブをルートに作成した場合は、ルートからのみ表示可能です。したがって、有効化、無効化および削除はルートからのみ可能です。
親トピック: 監査証跡の自動削除ジョブのスケジューリング
25.3.4 監査証跡の手動削除
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL
プロシージャを使用して、監査証跡を手動でパージできます。
- 監査証跡の手動削除について
監査証跡は、削除ジョブをスケジューリングしなくても、手動で即座に削除できます。 - DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAILを使用した監査証跡の手動削除
準備ステップの完了後、DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL
プロシージャを使用して、監査証跡を手動で削除できます。
親トピック: 監査証跡レコードの削除
25.3.4.1 監査証跡の手動削除について
監査証跡は、削除ジョブをスケジューリングしなくても、手動で即座に削除できます。
削除ジョブと同様に、アーカイブ・タイムスタンプの日付より前に作成された監査証跡レコード、または監査証跡内のすべてのレコードを削除できます。このプロシージャを実行した場合、現行の監査ディレクトリのみがクリーン・アップされます。
前のリリースの監査証跡がまだ存在しているアップグレード済のデータベースの場合は、DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL
PL/SQLプロシージャに関する次の点に注意してください。
-
DBMS_AUDIT_MGMT
パッケージではWindowsイベントビューアのクリーン・アップはサポートされていないため、Microsoft WindowsでAUDIT_TRAIL_TYPE
プロパティをDBMS_AUDIT_MGMT.AUDIT_TRAIL_OS
に設定しても効果はありません。Windows上のオペレーティング・システム監査レコードはWindowsイベントビューアに書き込まれるためです。DBMS_AUDIT_MGMT
パッケージでは、このタイプのクリーン・アップ操作はサポートされていません。 -
UNIXプラットフォームで、
AUDIT_SYSLOG_LEVEL
初期化パラメータを設定している場合は、Oracle Databaseによってオペレーティング・システムのログ・ファイルがsyslogファイルに書き込まれます。(syslogファイルを使用するよう構成すると、メッセージがsyslogデーモン・プロセスに送信されることに注意してください。syslogデーモン・プロセスは、syslogファイルへのコミットされた書込みを示す確認応答をOracle Databaseに返しません。)AUDIT_TRAIL_TYPE
プロパティをDBMS_AUDIT_MGMT.AUDIT_TRAIL_OS
に設定すると、監査ディレクトリ内の.aud
ファイルのみが削除されます(このディレクトリは、AUDIT_FILE_DEST
初期化パラメータで指定します)。
親トピック: 監査証跡の手動削除
25.3.4.2 DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAILを使用した監査証跡の手動パージ
準備ステップの完了後、DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL
プロシージャを使用して、監査証跡を手動で削除できます。
親トピック: 監査証跡の手動削除
25.3.5 他の監査証跡削除操作
監査証跡削除には、監査証跡削除ジョブの有効化と無効化や、監査証跡削除ジョブのデフォルト間隔の設定なども含まれます。
- 監査証跡の削除ジョブを使用可能または使用禁止にする方法
DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS
プロシージャで、監査証跡削除ジョブを有効または無効にします。 - 指定した削除ジョブに対するデフォルトの監査証跡削除ジョブの間隔の設定
次の削除ジョブ操作が実行されるまでのデフォルトの削除操作間隔を時間単位で設定できます。 - 監査証跡の削除ジョブの削除
既存の監査証跡削除ジョブを削除できます。 - アーカイブ・タイムスタンプ設定の消去
DBMS_AUDIT_MGMT.CLEAR_LAST_ARCHIVE_TIMESTAMP
プロシージャで、アーカイブ・タイムスタンプの設定をクリアできます。
親トピック: 監査証跡レコードの削除
25.3.5.1 監査証跡の削除ジョブを使用可能または使用禁止にする方法
DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS
プロシージャで、監査証跡削除ジョブを有効または無効にします。
マルチテナント環境では、DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS
プロシージャの実行場所は、削除ジョブの場所(DBMS_MGMT.CREATE_PURGE_JOB
プロシージャのCONTAINER
パラメータによって決定)によって異なります。CONTAINER
をCONTAINER_ALL
に設定した場合(削除ジョブをルートに作成する場合)は、DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS
プロシージャをルートから実行する必要があります。CONTAINER
をCONTAINER_CURRENT
に設定した場合は、DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS
プロシージャが作成されたPDBから、このプロシージャを実行する必要があります。
-
監査証跡パージ・ジョブを有効または無効にするには、
DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS
PL/SQLプロシージャを使用します。たとえば、削除ジョブを
hrpdb
PDBに作成したとします。CONNECT aud_admin@hrpdb Enter password: password Connected. BEGIN DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS( AUDIT_TRAIL_PURGE_NAME => 'Audit_Trail_PJ', AUDIT_TRAIL_STATUS_VALUE => DBMS_AUDIT_MGMT.PURGE_JOB_ENABLE); END; /
この例では、次のようになります。
-
AUDIT_TRAIL_PURGE_NAME
は、Audit_Trail_PJ
という削除ジョブを指定します。既存の削除ジョブを調べるには、DBA_AUDIT_MGMT_CLEANUP_JOBS
データ・ディクショナリ・ビューのJOB_NAME
およびJOB_STATUS
列を問い合せます。 -
AUDIT_TRAIL_STATUS_VALUE
は、次のプロパティのいずれかを受け入れます。-
DBMS_AUDIT_MGMT.PURGE_JOB_ENABLE
は、指定した削除ジョブを使用可能にします。 -
DBMS_AUDIT_MGMT.PURGE_JOB_DISABLE
は、指定した削除ジョブを使用禁止にします。
-
親トピック: 他の監査証跡削除操作
25.3.5.2 指定した削除ジョブに対するデフォルトの監査証跡削除ジョブの間隔の設定
次の削除ジョブ操作が実行されるまでのデフォルトの削除操作間隔を時間単位で設定できます。
DBMS_AUDIT_MGMT.CREATE_PURGE_JOB
プロシージャで使用される間隔設定が、この設定よりも優先されます。
-
特定のパージ・ジョブの監査証跡パージ・ジョブのデフォルト間隔を設定するには、
DBMS_AUDIT_MGMT.SET_PURGE_JOB_INTERVAL
プロシージャを実行します。たとえば、削除ジョブを
hrpdb
PDBに作成したとします。CONNECT aud_admin@hrpdb Enter password: password Connected. BEGIN DBMS_AUDIT_MGMT.SET_PURGE_JOB_INTERVAL( AUDIT_TRAIL_PURGE_NAME => 'Audit_Trail_PJ', AUDIT_TRAIL_INTERVAL_VALUE => 24); END; /
この例では、次のようになります。
-
AUDIT_TRAIL_PURGE_NAME
は、監査証跡の削除ジョブの名前を指定します。既存の削除ジョブのリストを調べるには、DBA_AUDIT_MGMT_CLEANUP_JOBS
データ・ディクショナリ・ビューのJOB_NAME
およびJOB_STATUS
列を問い合せます。 -
AUDIT_TRAIL_INTERVAL_VALUE
は、DBMS_AUDIT_MGMT.CREATE_PURGE_JOB
プロシージャで設定したデフォルトの間隔(時間単位)を更新します。1
から999
の値を入力します。削除ジョブを実行すると、計時が開始されます。
マルチテナント環境では、DBMS_AUDIT_MGMT.SET_PURGE_JOB_INTERVAL
プロシージャの実行場所は、削除ジョブの場所(DBMS_MGMT.CREATE_PURGE_JOB
プロシージャのCONTAINER
パラメータによって決定)によって異なります。CONTAINER
をCONTAINER_ALL
に設定した場合、削除ジョブはルートに存在するため、DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS
プロシージャをルートから実行する必要があります。CONTAINER
をCONTAINER_CURRENT
に設定した場合は、DBMS_AUDIT_MGMT.SET_PURGE_JOB_INTERVAL
プロシージャが作成されたPDBから、このプロシージャを実行する必要があります。
親トピック: 他の監査証跡削除操作
25.3.5.3 監査証跡の削除ジョブの削除
既存の監査証跡パージ・ジョブを削除できます。
既存の削除ジョブを調べるには、DBA_AUDIT_MGMT_CLEANUP_JOBS
データ・ディクショナリ・ビューのJOB_NAME
およびJOB_STATUS
列を問い合せます。
-
監査証跡パージ・ジョブを削除するには、
DBMS_AUDIT_MGMT.DROP_PURGE_JOB
PL/SQLプロシージャを使用します。
たとえば、削除ジョブをhrpdb
PDBに作成したとします。
CONNECT aud_admin@hrpdb
Enter password: password
Connected.
BEGIN
DBMS_AUDIT_MGMT.DROP_PURGE_JOB(
AUDIT_TRAIL_PURGE_NAME => 'Audit_Trail_PJ');
END;
/
マルチテナント環境では、DBMS_AUDIT_MGMT.DROP_PURGE_JOB
プロシージャの実行場所は、削除ジョブの場所(DBMS_MGMT.CREATE_PURGE_JOB
プロシージャのCONTAINER
パラメータによって決定)によって異なります。CONTAINER
をCONTAINER_ALL
に設定した場合、削除ジョブはルートに存在するため、DBMS_AUDIT_MGMT.SET_PURGE_JOB_STATUS
プロシージャをルートから実行する必要があります。CONTAINER
をCONTAINER_CURRENT
に設定した場合は、DBMS_AUDIT_MGMT.DROP_PURGE_JOB_INTERVAL
プロシージャが作成されたPDBから、このプロシージャを実行する必要があります。
親トピック: 他の監査証跡削除操作
25.3.5.4 アーカイブ・タイムスタンプ設定のクリア
DBMS_AUDIT_MGMT.CLEAR_LAST_ARCHIVE_TIMESTAMP
プロシージャで、アーカイブ・タイムスタンプの設定をクリアできます。
監査証跡ログのクリーン・アップの履歴を検索するには、OBJECT_NAME
がDBMS_AUDIT_MGMT
、OBJECT_SCHEMA
がSYS
で、SQL_TEXT
がLIKE %DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL%
に設定されていることを条件として使用し、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せます。
-
アーカイブ・タイムスタンプ設定を消去するには、
DBMS_AUDIT_MGMT.CLEAR_LAST_ARCHIVE_TIMESTAMP
PL/SQLプロシージャを使用して、監査証跡タイプと、マルチテナント環境の場合はコンテナ・タイプを指定します。たとえば、削除ジョブを
hrpdb
PDBに作成したとします。CONNECT aud_admin@hrpdb Enter password: password Connected. BEGIN DBMS_AUDIT_MGMT.CLEAR_LAST_ARCHIVE_TIMESTAMP( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, CONTAINER => DBMS_AUDIT_MGMT.CONTAINER_CURRENT); END; /
この例では、次のようになります。
-
統合監査証跡の場合は、
AUDIT_TRAIL_TYPE
が設定されます。AUDIT_TRAIL_TYPE
プロパティをDBMS_AUDIT_MGMT.AUDIT_TRAIL_OS
またはDBMS_AUDIT_MGMT.AUDIT_TRAIL_XML
に設定している場合、RAC_INSTANCE_NUMBER
を0
に設定することはできません。AUDIT_TRAIL_TYPE
をDBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED
に設定した場合は、RAC_INSTANCE_NUMBER
設定を省略できます。 -
CONTAINER
は、タイムスタンプをマルチテナント環境に適用します。DBMS_AUDIT_MGMT.CONTAINER_CURRENT
は、ローカルのPDBを指定し、DBMS_AUDIT_MGMT.CONTAINER_ALL
は、すべてのデータベースに適用されます。
親トピック: 他の監査証跡削除操作
25.3.6 例: 統合監査証跡の削除操作の直接コール
カスタマイズされたアーカイブ・プロシージャを作成して、統合監査証跡の削除操作を直接コールできます。
例25-1の疑似コードはデータベース監査証跡削除操作を作成し、この操作は、ユーザーが統合監査証跡に対してDBMS_ADUIT.CLEAN_AUDIT_TRAIL
プロシージャを起動することでコールします。
この削除操作では、ループを使用することで、前回アーカイブされたタイムスタンプより前に作成されたレコードを削除します。ループは監査レコードをアーカイブし、どの監査レコードがアーカイブされたかを計算してSetCleanUpAuditTrail
コールを使用して最終アーカイブ・タイムスタンプを設定し、それからCLEAN_AUDIT_TRAIL
プロシージャをコールします。この例では、重要なステップはboldで示しています。
例25-1 データベース監査証跡の削除操作の直接コール
-- 1. Set the last archive timestamp: PROCEDURE SetCleanUpAuditTrail() BEGIN CALL FindLastArchivedTimestamp(AUD$); DBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, LAST_ARCHIVE_TIME => '23-AUG-2013 12:00:00', CONTAINER => DBMS_AUDIT_MGMT.CONTAINER_CURRENT); END; / -- 2. Run a customized archive procedure to purge the audit trail records: BEGIN CALL MakeAuditSettings(); LOOP (/* How long to loop*/) -- Invoke function for audit record archival CALL DoUnifiedAuditRecordArchival(); CALL SetCleanUpAuditTrail(); IF(/* Clean up is needed immediately */) DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, USE_LAST_ARCH_TIMESTAMP => TRUE, CONTAINER => DBMS_AUDIT_MGMT.CONTAINER_CURRENT ); END IF END LOOP /*LOOP*/ END; /* PROCEDURE */ /
親トピック: 監査証跡レコードの削除
25.4 監査証跡管理のデータ・ディクショナリ・ビュー
Oracle Databaseには、監査証跡の管理設定に関する情報を表示するデータ・ディクショナリ・ビューが用意されています。
表25-2 に、これらのビューを示します。
表25-2 監査証跡の管理設定に関する情報を表示するビュー
ビュー | 説明 |
---|---|
|
従来(統合以外)の監査証跡の削除イベントの履歴が表示されます。定期的に、 DELETE FROM DBA_AUDIT_MGMT_CLEAN_EVENTS; このビューは、読取り/書込みデータベースにのみ適用されます。読取り専用データベースの場合、削除イベントの履歴はアラート・ログにあります。 統合監査の場合、削除されたイベントの履歴を検索するには、 |
|
現在構成されている監査証跡の削除ジョブが表示されます。 |
|
現在構成されている監査証跡プロパティが表示されます。これらのプロパティは、 |
|
監査証跡の削除用に設定された最後のアーカイブ・タイムスタンプが表示されます。 |
関連項目:
これらのビューの詳細は、Oracle Databaseリファレンスを参照してください。親トピック: 監査証跡の管理