13 Oracle Label SecurityでのDBAファンクションの実行
Oracle Label Securityでは標準のOracle Databaseユーティリティがサポートされていますが、一定の制限が適用され、期待される結果を得るには追加のステップが必要になる場合があります。
- Oracle Label SecurityでのOracle Data Pumpエクスポートの使用
Oracle Data Pumpを使用すると、データベース間でのデータとメタデータの高速移動が可能になります。 - Oracle Label SecurityでのData Pumpインポートの使用
Oracle Data Pumpを使用すると、データベース間でのデータとメタデータの高速移動が可能になります。 - Oracle Label SecurityでのSQL*Loaderの使用
SQL*Loaderは、外部ファイルからOracle Database内の表にデータを移動します。 - Oracle Label Securityのパフォーマンス上のヒント
Oracle Label Securityで最適なパフォーマンスを達成できます。 - インストール後のデータベースの追加作成
Oracle Label Securityをインストールした後、追加のデータベースを作成して構成できます。 - Oracle Label Securityのアップグレードおよびダウングレード
Oracle Label Securityのアップグレードおよびダウングレードを管理する方法に注意してください。
13.1 Oracle Label SecurityでのOracle Data Pumpエクスポートの使用
Oracle Data Pumpにより、データベース間でデータとメタデータを高速で移動できます。
- データベースの全体エクスポート
Oracle Database 12c以降では、データベースの全体エクスポートおよび全体インポート操作の実行時に、LBACSYSスキーマにあるOracle Label Securityのメタデータを含めることができます。 - スキーマおよび表レベルのエクスポート
Data Pumpエクスポート・ユーティリティは、Oracle Label Securityで標準的な方法で動作します。
13.1.1 データベースの全体エクスポート
Oracle Database 12c以降、完全なデータベース・エクスポートおよびインポート操作を実行するときに、LBACSYSスキーマにあるOracle Label Securityのメタデータを含めることができます。
ソース・データベースは、Oracle Database 11gリリース2 (11.2.0.3)以上に対応しますが、ターゲット・データベースはOracle Database 12c以上である必要があります。
ターゲット・データベースに対してData Pumpインポートを開始する前に、Oracle Label Securityを有効にする必要があります。
13.1.2 スキーマおよび表レベルのエクスポート
Data Pumpエクスポート・ユーティリティは、Oracle Label Securityで標準的な方法で動作します。
ただし、Oracle Label Securityポリシーの施行結果にいくつか違いがあります。
ノート:
表のすべての行をエクスポートするにはEXEMPT ACCESS POLICY権限が必要で、そうでない場合は行がエクスポートされません。
-
Oracle Label Securityポリシーで保護されている表の場合は、読取りアクセスが認可されているラベル付きの行のみがエクスポートされます。認可されていない行は、エクスポート・ファイルに含まれません。したがって、保護された表のすべてのデータをエクスポートするには、完全なアクセス権を付与する権限(
FULLやREADなど)が必要です。 -
ポリシーを再適用するSQL文は、エクスポート対象の表およびスキーマとともにエクスポートされます。この種の文はインポート中に実行され、元のデータベース内と同じ施行オプションを使用してポリシーが再適用されます。
-
HIDEプロパティはエクスポートされません。保護されている表をエクスポートすると、その表のラベル列も(数値として)エクスポートされます。ただし、ラベル列が非表示に設定されていると、通常の表示列としてエクスポートされます。 -
表のすべての行をエクスポートするには、ユーザーに
EXEMPT ACCESS POLICYが必要で、そうでない場合は行がエクスポートされません。
13.2 Oracle Label SecurityでのData Pumpインポートの使用
Oracle Data Pumpにより、データベース間でデータとメタデータを高速で移動できます。
- LBACSYSスキーマ・メタデータの完全データベース・インポート
データベースの全体エクスポートおよび全体インポート操作を実行するときに、LBACSYSスキーマにあるOracle Label Securityのメタデータを含めることができます。 - スキーマおよび表レベル・インポート
Oracle Label Securityで、Oracle Data Pumpインポート・ユーティリティのファンクションを使用できます。
13.2.1 LBACSYSスキーマ・メタデータの完全データベース・インポート
完全なデータベース・エクスポートおよびインポート操作を実行するときに、LBACSYSスキーマにあるOracle Label Securityのメタデータを含めることができます。
ソース・データベースは、Oracle Database 11gリリース2 (11.2.0.3)以上に対応しますが、ターゲット・データベースはOracle Database 12cリリース1 (12.1)以上である必要があります。
Oracle Data Pumpインポート・ユーティリティ、impdpは、ポリシー、ラベル、ユーザー認証、スキーマおよび表ポリシーの強制を含むLabel Securityメタデータを自動的にインポートします。インポート操作を開始する前に、ターゲット・データベースに対してOracle Label Securityを登録し、有効にする必要があります。
13.2.2 スキーマおよび表レベル・インポート
Oracle Label Securityで、Oracle Data Pumpインポート・ユーティリティのファンクションを使用できます。
- Oracle Label Securityでのインポート要件
Oracle Label Securityでimpdpを使用できます。 - インポート用データ・ラベルの定義
インポート時のラベル定義には、エクスポート・ファイルで使用されているポリシー・ラベルをすべて含める必要があります。 - Oracle Label Securityをインストールしない場合のラベル付きデータのインポート
ポリシー・ラベル列がNUMBER型として定義されている場合は、Oracle Label Securityがインストールされていないデータベースにインポートできます。 - ラベルなしデータのインポート
Oracle Label Securityポリシーで保護されている既存の表に、ラベルなしのデータをインポートできます。 - 非表示列を含む表のインポート
非表示列は通常の列としてエクスポートされ、非表示ではなくなります。
13.2.2.1 Oracle Label Securityでのインポート要件
Oracle Label Securityでimpdpを使用できます。
Oracle Label Securityでimpdpを使用するには、インポート・データベースを準備し、インポート・ユーザーが適切な認可を持っているかどうかを確認する必要があります。
- インポート・データベースの準備
Oracle Label Securityでインポート・ユーティリティを使用する前に、インポート・データベースを準備する必要があります。 - インポート・ユーザーの認証の検証
データの挿入に必要なラベルおよびエクスポート・ファイル内のラベルに対するインポート操作を実行するための認可を受ける必要があります。
親トピック: スキーマおよび表レベル・インポート
13.2.2.1.2 インポート・ユーザーの認証の検証
データの挿入に必要なラベルおよびエクスポート・ファイル内のラベルに対するインポート操作を実行するための認可を受ける必要があります。
次の要件を満たしていない場合は、インポート時にエラーが発生します。
-
表またはスキーマを対応するLabel Securityポリシーとともにインポートするには、
SA_POLICY_ADMINパッケージに対するEXECUTE権限が必要です。すべての行を確実にインポートできるように、インポート対象となるデータを持つすべてのポリシーについて
policy_DBAロールを持つ必要があります。各スキーマまたは表のインポート後は、インポートされたオブジェクトにエクスポート・データベースからのポリシーが再適用されます。 -
また、次のように、エクスポートされたすべての行を書き込めるようにする必要もあります。
要件2:
-
FULL権限、またはインポート・ファイルに含まれるすべてのラベルを書き込める十分な認可をユーザーに付与できます。 -
表にユーザー定義のラベル付けファンクションを適用できます。
-
13.2.2.2 インポート用データ・ラベルの定義
インポート時のラベル定義には、エクスポート・ファイルで使用されているポリシー・ラベルをすべて含める必要があります。
DBA_SA_LABELSデータ・ディクショナリ・ビューは、データ・ラベルをリストします。エクスポート・データベース内でビューDBA_SA_LEVELS、DBA_SA_COMPARTMENTS、DBA_SA_GROUPSを使用すると、インポート・データベース内でポリシーごとにラベル・コンポーネントとラベルを再作成するSQLスクリプトを設計できます。次の例に、HRポリシーについて個々のラベルを再作成するPL/SQLブロックの作成方法を示します。
set serveroutput on
BEGIN
dbms_output.put_line('BEGIN');
FOR l IN (SELECT label_tag, label
FROM dba_sa_labels
WHERE policy_name='HR'
ORDER BY label_tag) LOOP
dbms_output.put_line
(' SA_LABEL_ADMIN.CREATE_LABEL(''HR'', ' ||
l.label_tag || ', ''' || l.label || ''');');
END LOOP;
dbms_output.put_line ('END;');
dbms_output.put_line ('/');
END;
/
インポート・データベース内に、エクスポート・データベース内と同じ数値および文字列表現を持つ個々のラベルが存在しない場合、インポートされた表内のラベル値は無意味になります。表内の数値ラベル値が異なる文字列表現を参照したり、インポート・データベース内で定義されていないラベル値である場合があります。
ユーザーが無効な数値ラベルを含む行へのアクセスを試みると、操作は失敗します。
親トピック: スキーマおよび表レベル・インポート
13.2.2.3 Oracle Label Securityをインストールしない場合のラベル付きデータのインポート
ポリシーのラベル列のデータ型がNUMBERの場合、Oracle Label Securityがインストールされていないデータベースにインポートできます。
この場合、ポリシーのラベル列の値は番号としてインポートされます。対応するOracle Label Securityのラベル定義がなければ、この番号で特定のラベルは参照されません。
Oracle Label Securityがインストールされていない場合は、インポートされた表とスキーマにポリシーを再適用するSQL文が失敗するため、インポート中にエラーが発生することに注意してください。
親トピック: スキーマおよび表レベル・インポート
13.2.2.4 ラベルなしデータのインポート
Oracle Label Securityポリシーで保護されている既存の表に、ラベルなしのデータをインポートできます。
表への挿入時に行のラベルを自動的に初期化できるように、インポート対象となる表ごとにLABEL_DEFAULTオプションまたはラベル付けファンクションを指定する必要があります。
親トピック: スキーマおよび表レベル・インポート
13.2.2.5 非表示列を含む表のインポート
非表示列は通常の列としてエクスポートされ、非表示ではなくなります。
ラベル列の非表示プロパティを保つ場合は、最初に表をインポート・データベース内に作成する必要があります。
- インポートを実行する前に、表を作成し、
HIDEオプションを指定してポリシーを適用します。これにより、ポリシーのラベル列は表に非表示列として追加されます。 - エクスポート・ファイル内で指定した施行オプションをインポート操作中に表に再適用できるように、表からポリシーを削除します。
IGNORE=Yを指定してインポートを実行します。IGNOREパラメータをYに設定すると、インポート時のエラーが無視されます。HIDEオプションを指定して、表にポリシーを手動で適用します。
親トピック: スキーマおよび表レベル・インポート
13.3 Oracle Label SecurityでのSQL*Loaderの使用
SQL*Loaderは、外部ファイルからOracle Database内の表にデータを移動します。
- Oracle Label SecurityでのSQL*Loaderの使用要件
従来型パスを指定してSQL*Loaderを使用すると、Oracle Label Securityで保護されているデータベースにデータをロードできます。 - Oracle Label SecurityからSQL*Loaderへの入力
表のポリシー列が非表示になっている場合は、HIDDENキーワードを使用して、この情報をSQL*Loaderに指示する必要があります。
13.3.1 Oracle Label SecurityでのSQL*Loaderの使用要件
従来型パスを指定してSQL*Loaderを使用すると、Oracle Label Securityで保護されているデータベースにデータをロードできます。
SQL*LoaderではINSERT操作が実行されるため、Oracle Label Securityポリシーで保護されている表にSQL*Loaderを使用する場合は、標準的な要件がすべて適用されます。
13.3.2 Oracle Label SecurityからSQL*Loaderへの入力
表のポリシー列が非表示になっている場合は、HIDDENキーワードを使用して、この情報をSQL*Loaderに指示する必要があります。
入力ファイル内で行ラベルを指定するには、制御ファイル内のINTO TABLE句にポリシーのラベル列を含める必要があります。
各行のデータとともにポリシー・ラベルをロードするには、SQL*Loaderの制御ファイル内でCHAR_TO_LABELファンクションまたはTO_DATA_LABELファンクションを指定できます。
表13-1に、SQL*LoaderでOracle Label Securityのデータをロードする際に使用できるバリエーションを示します。
表13-1 SQL*LoaderへのOracle Label Security入力の選択肢
| データの書式 | 結果の説明 |
|---|---|
|
|
非表示列がデータのタグ値とともにデータ・ファイルから直接ロードされます。 |
|
|
文字ラベルとそのタグ値間の変換に使用されるデータ |
|
|
|
|
|
入力 |
たとえば、次のようにデータをDEPT表にロードするINTO TABLE句は、制御ファイル内で有効です。
INTO TABLE dept
(hr_label HIDDEN POSITION (1:22) CHAR "CHAR_TO_LABEL('HR',:hr_label)",
deptno POSITION (23:26) INTEGER EXTERNAL,
dname POSITION (27:40) CHAR,
loc POSITION(41,54) CHAR)
この制御ファイルで指定したデータファイル内のエントリは次のようになります。
HS:FN 231 ACCOUNTING REDWOOD SHORES
13.4 Oracle Label Securityのパフォーマンス上のヒント
Oracle Label Securityで最適なパフォーマンスを達成できます。
- ANALYZEを使用したOracle Label Securityのパフォーマンス改善
LBACSYSスキーマ内のOracle Label Securityデータ・ディクショナリ表に対してANALYZE文を実行できます。 - ポリシー・ラベル列での索引作成
ポリシー・ラベル列で適切なタイプの索引を作成すると、保護されている表に対してユーザーが発行する問合せのパフォーマンスを改善できます。 - パフォーマンス強化のためのラベル・タグ方針計画
最適なパフォーマンスを得るために、ラベル・タグに値を割り当てる方針を計画できます。 - 数値ラベル・タグに基づいてパーティション化されたデータ
数値ラベル・タグをラベルに適用して数値による順序付け方法を使用すると、それをOracle Databaseデータ・パーティション化の基礎とすることができます。
13.4.1 ANALYZEを使用したOracle Label Securityのパフォーマンス改善
LBACSYSスキーマ内のOracle Label Securityデータ・ディクショナリ表に対してANALYZE文を実行できます。
これにより、コストベース・オプティマイザによる問合せ時の実行計画の改善が可能になり、それによってOracle Label Securityのパフォーマンスが向上します。
アプリケーション表に対してANALYZEを実行すると、アプリケーションのSQLパフォーマンスが改善されます。
13.4.2 ポリシーのラベル列での索引作成
ポリシーのラベル列で適切なタイプの索引を作成すると、保護されている表に対してユーザーが発行する問合せのパフォーマンスを改善できます。
特定のスキーマ内でデータベース表にOracle Label Securityポリシーを適用している場合は、様々なラベルの数をデータ量と比較する必要があります。この情報に基づいて、ポリシーのラベル列で作成する索引のタイプを決定できます。
-
ポリシー・ラベル列のデータのカーディナリティ(つまり、行数に対するラベル数の割合)が低い場合は、ビットマップ索引の作成を考慮してください。
-
ポリシー・ラベル列のデータのカーディナリティが高い場合は、Bツリー索引の作成を考慮してください。
Oracle Label SecurityポリシーでEMP表が保護され、READ_CONTROL強制オプションが設定されており、HR_LABELがポリシー・ラベル列の名前である場合を考えます。ユーザーが次の問合せを発行するとします。
SELECT COUNT (*) FROM SCOTT.EMP;
この場合、Oracle Label Securityではラベル列に基づいて述語が追加されます。たとえば:
SELECT COUNT (*) FROM SCOTT.EMP WHERE hr_label=100;
これにより、Oracle Label Securityではセキュリティ・ラベルが使用され、ユーザーの認証に基づいて処理対象の行が制限されます。この問合せのパフォーマンスを改善するには、HR_LABEL列で索引を作成できます。
より複雑な問合せを考えます(この場合も、EMP表にREAD_CONTROLが適用されているとします)。
SELECT COUNT (*) FROM SCOTT.EMP WHERE deptno=10
この場合も、Oracle Label Securityではラベル列に基づいて述語が追加されます。
SELECT COUNT (*) FROM SCOTT.EMP WHERE deptno=10 AND hr_label=100;
この場合は、DEPTNOおよびHR_LABEL列に基づいてコンポジット索引を作成し、アプリケーションのパフォーマンスを改善できます。
13.4.3 パフォーマンス強化のためのラベル・タグ方針計画
最適なパフォーマンスを得るために、ラベル・タグに値を割り当てる方針を作成できます。
通常、最も適切な方法は、機密性レベルの高いラベルほど大きい数値を割り当てることです。
これは、一般に、比較的低レベルでデータを表示できるユーザーが多い一方、多数のレベルのデータを高レベルで表示できるユーザーは少ないためです。
また、READ_CONTROLを設定すると、Oracle Label Securityでは、BETWEEN句を使用して問合せの処理対象となる行を制限する述語が生成されます。次の例のように、機密性の高いラベルのラベル・タグの方が機密性の低いラベルよりも上位でない場合、問合せでは大量の行セットが検査される可能性があります。これはパフォーマンスに影響します。
表13-2に、次のように割り当てられるラベル・タグのセットを示します。
表13-2 ラベル・タグのパフォーマンスの例: 適切な値
| ラベル | ラベル・タグ |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
最大の認可がS:Aであるユーザーは、S:A、SおよびU:Aでデータに潜在的にアクセスできます。このユーザーが次の問合せを発行するとします。
SELECT COUNT (*) FROM SCOTT.EMP
Oracle Label Securityにより、このユーザーが表示できる行セットを制限するBETWEEN句を(最大認可と最小認可に基づいて)組み込む述語が追加されます。
SELECT COUNT (*) FROM SCOTT.EMP WHERE hr_label BETWEEN 10 AND 50;
問合せではユーザーの認証に基づいてデータのサブセットのみが検査されるため、パフォーマンスが改善されます。ユーザーがアクセスを認可されていない行を処理するのは無意味です。
表13-3に、タグ値が次のように割り当てられた場合に不要な作業がどのように実行されるかを示します。
表13-3 ラベル・タグのパフォーマンスの例: 不適切な値
| ラベル | ラベル・タグ |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
この場合、S:A認可を持つユーザーは、100から10までのラベルの一部のみ参照できます。ただし、ユーザーはTS:A,Bラベル(ラベル・タグが50の行)を参照できません。ユーザーが最終的にこれらの行にアクセスできなくても、問合せではこれらの行が取得されて処理されます。
13.4.4 数値ラベル・タグに基づいてパーティション化されたデータ
数値ラベル・タグをラベルに適用して数値による順序付け方法を使用すると、それをOracle Databaseデータ・パーティション化の基礎とすることができます。
アプリケーションによっては、ラベル値に基づいてデータをパーティション化できる場合とできない場合があります。たとえば、多数の会社がサブスクライブするビジネス・ホスティングCRMアプリケーションを考えます。同じEMP表にサブスクライバ1およびサブスクライバ2の行(およびラベル)がある場合があります。つまり、ラベルが異なっていれば、両方の会社の情報を同じ表に格納できます。この場合、サブスクライバ1の従業員がサブスクライバ2のデータにアクセスする必要はないため、ラベルに基づいてパーティション化しても無意味です。あるパーティションにサブスクライバ1に関する行を入れて、別のパーティションにはサブスクライバ2に関する行を入れることができます。問合せが発行されると、ラベルに応じて一方または他方のパーティションにのみアクセスします。無関係なパーティションが問合せにより検査されることはないため、パフォーマンスが改善されます。
次の例にこの方法を示します。あるパーティションに2000番台のラベル、2番目のパーティションに3000番台のラベル、3番目のパーティションに4000番台のラベルを置きます。
CREATE TABLE EMPLOYEE(
EMPNO NUMBER(10) CONSTRAINT PK_EMPLOYEE PRIMARY KEY,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(4),
HR_LABEL NUMBER(10))
TABLESPACE PERF_DATA
STORAGE (initial 2M
NEXT 1M
MINEXTENTS 1
MAXEXTENTS unlimited)
PARTITION BY RANGE (hr_label)
(partition sx1 VALUES LESS THAN (2000) NOLOGGING,
partition sx2 VALUES LESS THAN (3000),
partition sx3 VALUES LESS THAN (4000)
);13.5 インストール後の追加データベースの作成
Oracle Label Securityをインストールした後、追加のデータベースを作成して構成できます。
- インストール後のデータベースの追加作成について
Oracle Database Enterprise EditionおよびOracle Label Securityをインストールすると、初期Oracleデータベースが作成されます。 - ラベル・セキュリティ・スキーマがシード内にある場合の追加データベースの作成
ラベル・セキュリティ・スキーマがシード・データベース内にある状態でデータベースがインストールされた場合、Oracle Label Securityを構成できます。 - カスタム・インストール・オプションを使用した追加データベースの作成
カスタム・データベース・インストール後にOracle Label Securityを構成できます。
13.5.1 インストール後の追加データベースの作成について
Oracle Database Enterprise EditionおよびOracle Label Securityをインストールすると、初期Oracleデータベースが作成されます。
データベースの追加作成が必要な場合は、Database Configuration Assistantを使用する必要があります。また、『Oracle Database管理者ガイド』に記載されているステップに従って、追加データベースを作成することもできます。
新規データベースを作成するたびに、そこにOracle Label Securityのデータ・ディクショナリ表、ビューおよびパッケージをインストールし、LBACSYSアカウントを作成する必要があります。
最初のデータベースの場合は、カスタム・インストールを選択するかどうかにかかわらず、Oracle Label Securityのインストール時にこのタスクが自動的に実行されます。カスタム・インストールを選択しない場合は、シード内のラベル・セキュリティ・スキーマでデータベースをインストールすることになります。
追加のデータベースを作成するには、最初のデータベースをカスタム・インストールとシード内のラベル・セキュリティ・スキーマのどちらでインストールしたかに応じて、ラベル・セキュリティの構成に様々なプロセスがあります。
最初にカスタム・インストールを選択したが、ラベル・セキュリティをインストールしなかった場合は、この項に示されたプロセスを使用してラベル・セキュリティをインストールおよび構成できます。
親トピック: インストール後の追加データベースの作成
13.5.2 ラベル・セキュリティ・スキーマがシード内にある場合の追加データベースの作成
ラベル・セキュリティ・スキーマがシード・データベース内にある状態でデータベースがインストールされた場合、Oracle Label Securityを構成できます。
- DBCAで「Oracle Label Security」オプションを選択します。
- Oracle Label Securityを構成するためのチェック・ボックスを選択します。
親トピック: インストール後の追加データベースの作成
13.5.3 カスタム・インストール・オプションを使用した追加データベースの作成
カスタム・データベース・インストール後にOracle Label Securityを構成できます。
親トピック: インストール後の追加データベースの作成
13.6 Oracle Label Securityのアップグレードおよびダウングレード
Oracle Label Securityのアップグレードおよびダウングレードを管理する方法に注意してください。
- Oracle Label Securityのアップグレードおよびダウングレードについて
Oracleでは、アップグレード操作とダウングレード操作を実行する事前処理スクリプトが提供されています。 - Oracle Label Securityのアップグレード
Oracleでは、アップグレードの実行前に実行する必要がある事前処理スクリプトが提供されています。 - Oracle Label Securityのダウングレード
Oracleでは、ダウングレードの実行前に実行する必要がある事前処理スクリプトが提供されています。
13.6.1 Oracle Label Securityのアップグレードおよびダウングレードについて
Oracleでは、アップグレード操作とダウングレード操作を実行する事前処理スクリプトが提供されています。
安全確保のため、アップグレードまたはダウングレード事前処理スクリプトを実行する前に、監査レコードをバックアップすることをお薦めします。これを行うには、『Oracle Databaseセキュリティ・ガイド』の説明に従って、監査証跡をアーカイブします。
実行する前に、事前処理スクリプトは、すべての監査レコードをコピーするのに十分な領域が監査表領域にあることをチェックし、領域が十分でない場合は処理せずに終了します。
OLS事前処理スクリプトの実行中も、データベース上でアプリケーションを継続して実行できます。
関連項目:
Oracle Label SecurityおよびOracle Database Vaultを使用しているデータベースのアップグレードの要件は、『Oracle Databaseアップグレード・ガイド』を参照してください
13.6.2 Oracle Label Securityのアップグレード
Oracleでは、アップグレードの実行前に実行する必要がある事前処理スクリプトが提供されています。
- Oracle Label Securityのアップグレードについて
Oracle Database 12cリリース1 (12.1)より前のデータベースでは、Oracle Label Securityをアップグレードする必要があります。 - アップグレード前のOracle Label Security事前処理スクリプトの実行
アップグレード前に、Oracle Label Security事前処理スクリプトを実行できます。
13.6.2.1 Oracle Label Securityのアップグレードについて
Oracle Database 12cリリース1 (12.1)より前のデータベース用のOracle Label Securityをアップグレードする必要があります。
ノート:
Oracle Label SecurityまたはDatabase Vaultを使用するOracle Database 12cリリース(12.1)より前のデータベースをアップグレードする場合、アップグレード前にolspreupgrade.sqlスクリプトを実行する必要があります。
Oracle Databaseリリース12cにアップグレードした後は、データベースのパッチ適用またはアップグレード時にOracle Label Security事前処理スクリプトを実行する必要はありません。
OLSアップグレード・プロセスを実行する前に、Oracle Label Security事前処理アップグレード・スクリプトolspreupgrade.sqlを実行して、AUD$表の内容を処理する必要があります。OLSアップグレードでは、AUD$表がSYSTEMスキーマからSYSスキーマに移動されます。olspreupgrade.sqlスクリプトは、この移動に必要な事前処理スクリプトです。SYSスキーマに一時表PREUPG_AUD$が作成され、SYSTEM.AUD$レコードがSYS.PREUPG_AUD$に移動されます。移動されたレコードは、DBA_AUDIT_TRAILビューで参照できなくなりますが、アップグレードが完了するまではSYS.PREUPG_AUD$表に直接アクセスすることで表示できます。アップグレードの完了後に、SYS.PREUPG_AUD$表が完全に削除され、すべての監査レコードはDBA_AUDIT_TRAILビューを通じて表示できます。
13.6.2.2 アップグレード前のOracle Label Security事前処理スクリプトの実行
アップグレード前に、Oracle Label Security事前処理スクリプトを実行できます。
ノート:
Oracle Label Security事前処理スクリプトでエラーがレポートされた場合、Oracle Label Securityコンポーネントのアップグレード・ステータスはINVALIDとマークされます。この状況が発生した場合は、エラーを修正してからアップグレード・プロセスを再実行する必要があります。Oracle Databaseのアップグレード・プロセスの再実行の詳細は、『Oracle Database管理者ガイド』を参照してください。
13.6.3 Oracle Label Securityのダウングレード
Oracleでは、ダウングレードの実行前に実行する必要がある事前処理スクリプトが提供されています。
- Oracle Label Securityのダウングレードについて
Oracle Label SecurityまたはOracle Database Vaultを使用するOracle Database 12cリリース1 (12.1)以降のデータベースからダウングレードできます。 - ダウングレード前のOracle Label Security事前処理スクリプトの実行
ダウングレード用のOracle Label Security事前処理スクリプトを実行する前に、SYSDBA管理権限を使用して、SYSとして接続する必要があります。
13.6.3.1 Oracle Label Securityのダウングレードについて
Oracle Label SecurityまたはOracle Database Vaultを使用するOracle Database 12cリリース1 (12.1)以降のデータベースからダウングレードできます。
これを行うには、OLS事前処理スクリプトolspredowngrade.sqlを実行して、AUD$表の内容を処理する必要があります。OLSダウングレード・スクリプトでは、AUD$表がSYSスキーマからSYSTEMスキーマに移動されます。olspredowngrade.sqlスクリプトは、この移動の前処理に必要な処理スクリプトです。SYSTEMスキーマに一時表PREDWG_AUD$が作成され、SYS.AUD$レコードがSYSTEM.PREDWG_AUD$に移動されます。移動されたレコードは、DBA_AUDIT_TRAILビューで参照できなくなりますが、ダウングレードが完了するまではSYSTEM.PREDWG_AUD$表に直接アクセスすることで参照できます。ダウングレードが完了すると、SYSTEM.PREDWG_AUD$表は完全に削除されます。この時点では、すべての監査レコードはDBA_AUDIT_TRAILデータ・ディクショナリ・ビューで参照できます。