DBMS_FLASHBACK_ARCHIVE
パッケージには、次の様々な作業を実行するためのプロシージャが含まれています。
フラッシュバック・データ・アーカイブ(FDA)が有効な表の基礎となるFDAからの関連付けの解除および基礎となるFDAとの再関連付け
アプリケーション表の改ざん防止。
ユーザー履歴のインポート
注意: ユーザーが生成した履歴をインポートすると、不正確で信頼性のない結果となる可能性があります。このプロシージャを使用する場合は、事前にOracleサポートに連絡してください。 |
セッション・レベルでの有効な時間のサポートの有効化および無効化
関連項目: 詳細は、『Oracle Database開発ガイド』のフラッシュバック・データ・アーカイブ(Oracle Temporal)の使用方法に関する項を参照してください。 |
この章では、次の項目について説明します。
概要
セキュリティ・モデル
定数
フラッシュバック・データ・アーカイブ(FDA)は、ユーザーのために作成およびメンテナンスする内部履歴表を厳重に保護します。
読取り専用のセマンティクスによって、DBAを含むユーザーは、フラッシュバック・データ・アーカイブ内部履歴表の更新、削除および挿入が禁止されています。ユーザーがこれらの表に関するDDL文を発行することも禁止されています。この厳密なセキュリティの施行により、規制遵守やコンプライアンスが求められる環境でアプリケーションの要件に適合します。フラッシュバック・データ・アーカイブは、表定義の変更やデータの移動を行う文を含む、一般的なDDL文のほとんどをサポートしています。ただし、一部のDDL文は、フラッシュバック・データ・アーカイブが有効な表でサポートされていません。アプリケーション・ソフトウェアのアップグレードにおいては、ほとんどのアプリケーション・スキーマが変更されるため、追跡された表でのDDL操作の実行は不可欠です。
フラッシュバック・データ・アーカイブでサポートされていないDDL文の使用を必要とするアプリケーション・アップグレードやその他の表メンテナンス・タスク中にスキーマの進化をサポートするために、DBMS_FLASHBACK_ARCHIVE
パッケージは簡単に使用できる、次のPL/SQLプロシージャのセットを提供しています。
フラッシュバック・データ・アーカイブが有効な元表と基礎となるFDAの関連付けを解除する。
一時的に関連付けを解除した元表を基礎となるFDAに再関連付けする。
ユーザーが元表とFDAの関連付けを解除した後は、元表またはFDAの履歴表で任意のDDL文を発行することができます。スキーマの変更が完了したら、ユーザーは元表とFDAの再関連付けを行い、フラッシュバック・データ・アーカイブ保護が機能して、自動追跡とアーカイブを再開します。
ユーザー生成履歴のインポート、コンテキスト・レベルの設定および表の改ざん防止を実行するために、ユーザーはFLASHBACK_ARCHIVE_ADMINISTER
権限を必要とします。表の関連付けが解除されると、ユーザーに必要な権限があれば、DDLおよびDML文を表に対して実行できます。セッション・レベルでの有効な時間の一時フラッシュバックを有効および無効にする場合、それ以外の権限は必要ありません。
注意: 関連付けを解除した表のコンプライアンス履歴は保証されません。表の関連付けを解除する場合は、事前にOracleサポートに連絡してください。 |
表71-2 DBMS_FLASHBACK_ARCHIVEパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
ADD_TABLE_TO_APPLICATIONプロシージャ |
アプリケーション名を取得し、そのアプリケーションにセキュリティ表としての表を追加します。 |
CREATE_TEMP_HISTORY_TABLEプロシージャ |
スキーマ内の適切な定義を使用して |
|
アプリケーション名を取得し、その中の表をセキュリティ表としてマークします。 |
|
セッション・レベルの有効な時間のフラッシュバックを無効にします。 |
|
指定した表とフラッシュバック・データ・アーカイブの関連付けを解除します。 |
|
アプリケーション名を取得し、このアプリケーションをアプリケーション・リストから削除します。 |
|
アプリケーション名を取得し、このアプリケーションのすべてのセキュリティ表のフラッシュバック・データ・アーカイブを有効にします。 |
|
セッション・レベルの有効な時間のフラッシュバックを有効にします。 |
|
時間マッピングを過去の時間に拡張します。 |
|
SET_CONTEXT_LEVELプロシージャによって以前に選択されたコンテキストを取得します。 |
|
指定したスキーマ内の |
|
アプリケーション名を取得し、そのすべてのセキュリティ表を読取り専用にします。 |
|
SET_CONTEXT_LEVELプロシージャによって選択された保存対象のコンテキストをパージします。 |
|
指定した表をフラッシュバック・データ・アーカイブと再関連付けします。 |
|
アプリケーション名およびオプションでフラッシュバック・データ・アーカイブを取得し、データベース強化用にアプリケーションを登録します。 |
REMOVE_TABLE_FROM_APPLICATIONプロシージャ |
アプリケーション名を取得し、その中の表をセキュリティ表ではなくなったものとしてマークします。 |
|
ユーザー・コンテキストがどの程度保存されるかを定義します。 |
このプロシージャは、アプリケーション名を取得し、そのアプリケーションにセキュリティ表としての表を追加します。アプリケーションでフラッシュバック・データ・アーカイブが有効な場合、この表でもフラッシュバック・データ・アーカイブが有効です。
このプロシージャは、スキーマ内の適切な定義を使用してTEMP_HISTORY
という表を作成します。
このプロシージャはアプリケーション名を取得し、このアプリケーションをアプリケーション・リストから削除します。このプロシージャの一部として、セキュリティが有効なすべての表のフラッシュバック・データ・アーカイブが無効にされて、すべての履歴データが失われます。SYSTEM
というグループは削除できません。
このプロシージャは、アプリケーション名を取得し、このアプリケーションのすべてのセキュリティ表のフラッシュバック・データ・アーカイブを有効にします。アプリケーションを有効にすると、FDAが有効な表へのすべての変更が追跡されます。
このプロシージャは、セッション・レベルの有効な時間のフラッシュバックを有効にします。
このファンクションは、SET_CONTEXT_LEVELプロシージャによって以前に選択されたコンテキストを取得します。
このプロシージャは、CREATE_TEMP_HISTORY_TABLEプロシージャが起動されて、TEMP_HISTORY
表にユーザーが生成した履歴データが移入された後にコールされます。
注意: ユーザーが生成した履歴をインポートすると、不正確で信頼性のない結果となる可能性があります。このプロシージャを使用する場合は、事前にOracleサポートに連絡してください。 |
構文
DBMS_FLASHBACK_ARCHIVE.IMPORT_HISTORY ( owner_name1 IN VARCHAR2, table_name1 IN VARCHAR2 temp_history_name IN VARCHAR2 DEFAULT 'TEMP_HISTORY', options IN BINARY_INTEGER DEFAULT 0);
このプロシージャは、アプリケーション名およびオプションでフラッシュバック・データ・アーカイブを取得し、データベース強化用にアプリケーションを登録します。データベース強化が有効な場合、指定されたフラッシュバック・データ・アーカイブを使用して、そのアプリケーションのすべてのセキュリティ表のフラッシュバック・データ・アーカイブが有効になります。フラッシュバック・データ・アーカイブが指定されていない場合、デフォルトのフラッシュバック・データ・アーカイブが使用されます。
関連項目: データベース強化の詳細は、『Oracle Database開発ガイド』の「フラッシュバック・データ・アーカイブの使用方法」を参照してください。 |
このプロシージャはアプリケーション名を取得し、その中の表をセキュリティ表ではなくなったものとしてマークします。アプリケーションのフラッシュバック・データ・アーカイブがすでに有効な場合、この表のフラッシュバック・データ・アーカイブは無効になります。