6 表領域およびデータベースの暗号化変換
オンラインとオフラインの両方の表領域およびデータベースで暗号化操作を実行できます。
6.1 表領域およびデータベースの暗号化変換について
CREATE TABLESPACE SQL文を使用して、新しい暗号化表領域を作成できます。ALTER TABLESPACEによって、既存の表領域を暗号化できます。
新規または既存の表領域の暗号化に加えて、全データベースを暗号化できます。その場合、Oracle管理の表領域(このリリースではSYSTEM、SYSAUX、TEMPおよびUNDO表領域)も暗号化されます。Oracle提供の表領域には、データベース・システムの正しい機能(機密保護、整合性および可用性)のために必要な情報が格納されます。この情報には、システムのデータ・ディクショナリ、システムの一時ソート領域、システムのUNDOセグメントおよびシステムの補助データが含まれます。この情報はOracleデータベース・サーバーそのものによって内部的に更新されることのみを意図しており、通常、ユーザーが直接更新することはありません。
全データベースを暗号化するには、ALTER DATABASEではなく、ALTER TABLESPACEを使用してOracle管理の表領域を暗号化します。
次の表で、表領域およびデータベースのオフラインとオンラインの暗号化変換の違いを比較します。
表6-1 オフラインとオンラインの表領域およびデータベースの暗号化変換
| 機能 | オフライン変換 | オンライン変換 |
|---|---|---|
|
最小の変換機能があるリリース |
Oracleデータベース11gリリース2 (11.2) |
Oracle Database 12cリリース2 (12.2)以降 |
|
バックポートできるもの |
|
いいえ |
|
サポートされるアルゴリズム |
TDEがサポートするすべての対称型暗号化アルゴリズム。 |
TDEがサポートするすべての対称型暗号化アルゴリズム。 |
|
変換をいつ実行できるか |
表領域がオフラインであるか、データベースがマウント段階にあるとき。 |
表領域がオンラインで、データベースが読取り/書込みモードで開いているとき。 |
|
変換に補助領域が必要か |
いいえ |
はい。 |
|
Oracle Data Guardの変換ガイドライン |
プライマリおよびスタンバイの両方を手動で変換します。スタンバイを最初に変換し、最小停止時間に切り替えます |
プライマリを変換した後、スタンバイ変換が自動的に行われます。スタンバイでは、オンライン変換を直接実行することはできません。 |
|
表領域 |
Oracle Database 12cリリース2 (12.2)以降のみ。 |
Oracle Database 12cリリース2 (12.2)以降のみ。 |
|
既存の |
いいえ、ただし、Oracle Database 12cリリース2 (12.2)以降で |
いいえ、ただし、Oracle Database 12cリリース2 (12.2)以降で |
|
既存の表領域を復号化できるか |
以前にオフライン暗号化操作によって暗号化された表領域またはデータ・ファイルのみ復号化できます。一度暗号化された |
はい、ただし、一度暗号化された |
|
暗号化キーをキー更新できるか |
いいえ、ただし、表領域が暗号化された後、オンライン変換を使用してOracle Database 12cリリース2 (12.2)の互換性でキー変更できます。 |
はい |
|
暗号化操作を並列して実行できるか |
複数のユーザー・セッションを実行しているデータ・ファイル・レベルで、並列した暗号化変換を実行できます。 |
複数のユーザー・セッションが実行している表領域レベルで、並列した暗号化変換を実行できます。 |
|
暗号化変換SQL文が完了できなかった場合どうするか |
暗号化または復号化SQL文を再発行して、表領域内のすべてのデータ・ファイルが確実に一貫して暗号化または復号化されるようにします。 |
|
6.2 暗号化された表領域に対する閉じられたTDEキーストアの影響
Oracle管理の表領域が暗号化されている場合は、TDEキーストアを閉じたり、移行したりできますが、Oracle管理の表領域に対する操作を禁止するにはデータベース・システム自体を停止する必要があります。
閉じられたTDEキーストアは、暗号化されたOracle管理の表領域(このリリースでは、SYSTEM、SYSAUX、TEMPおよびUNDO表領域)に関係する操作に影響しません。これにより、TDEキーストアが閉じられているときにも、バックグラウンド・プロセス(ログ・ライターなど)によって実行される操作をこれらの表領域に対して引き続き実行できます。暗号化されたOracle管理の表領域に対する操作を禁止する場合は、データベースを停止する必要があります。
ユーザー作成の表領域に関しては、TDEキーストアが閉じられていることによって、キーのローテーション、表領域の復号化などの操作が、以前のリリースと同様にORA-28365 ウォレットがオープンしていませんというエラーで失敗します。ユーザー作成の表領域に対する操作を禁止する場合は、TDEキーストアを閉じます(または、データベースを停止します)。
ユーザー作成のデータは、TDEキーストアが開いている間にユーザー作成の表領域から暗号化されたOracle管理の表領域にコピーできます(たとえば、DBMS_STATS統計収集などの内部プロセスによって)。キーストアを閉じた場合、ユーザーがV$ENCRYPTION_WALLETビューを問い合せたときにTDEキーストアがCLOSED状態であっても、後でこのデータを表示することは妨げられません。暗号化されたユーザー作成の表領域を問い合せることによって元のデータにアクセスしようとすると失敗し、ORA-28365 ウォレットがオープンしていませんというエラーが返されます。
表6-2に、ユーザー作成の表領域およびOracle管理の表領域の暗号化されたデータに対する操作を禁止または許可するために必要な操作を示します。たとえば、最初のシナリオでは、ユーザー作成の表領域とOracle管理の表領域の両方が暗号化されています。この場合、暗号化されたユーザー作成の表領域の暗号化データに関しては、管理者はキーストアを開閉し、暗号化されたユーザー作成の表領域を持つデータベースを停止およびオープンできます。暗号化されたOracle管理の表領域が構成されている場合、管理者はデータベースを停止することで操作を禁止できます。また、マウント・モードで起動してTDEキーストアを開き、データベースをオープンすることで操作を許可できます。(暗号化されたOracle管理の表領域にあるブートストラップ・ディクショナリ表を復号化するためにTDEマスター暗号化キーが必要になる可能性があるため、データベースをオープンする前にTDEキーストアを開く必要があります。)この表の該当なしフラグは暗号化されていないデータを示しており、インスタンスが停止されないかぎり、常に操作できます。
表6-2 暗号化データの操作を禁止または許可するために必要なコマンド
| 表領域の暗号化のシナリオ | 暗号化されたユーザー作成の表領域のデータの操作を禁止するコマンド | 暗号化されたOracle管理の表領域のデータの操作を禁止するコマンド | 暗号化されたユーザー作成の表領域のデータの操作を許可するコマンド | 暗号化されたOracle管理の表領域のデータの操作を許可するコマンド |
|---|---|---|---|---|
| ユーザー作成の表領域およびOracle管理の表領域の両方が暗号化されている |
|
SHUTDOWN |
|
|
| ユーザー表領域は暗号化されていて、Oracle管理の表領域は暗号化されていない |
|
該当なし |
|
該当なし |
| ユーザー表領域は暗号化されておらず、Oracle管理の表領域は暗号化されている | 該当なし | SHUTDOWN |
該当なし |
|
| ユーザー表領域もOracle管理の表領域も暗号化されていない | 該当なし | 該当なし | 該当なし | 該当なし |
6.3 透過的データ暗号化表領域暗号化の使用に関する制限
表領域を暗号化する際は、透過的データ暗号化の使用に関する制限事項に注意する必要があります。
次の制約に注意してください:
-
透過的データ暗号化(TDE)表領域暗号化では、SQLレイヤーでデータを暗号化および復号化するTDE列暗号化とは対照的に、読取りおよび書込み操作時にデータを暗号化または復号化します。このことは、データ型制限や索引タイプ制限など、TDE列暗号化に適用される制限のほとんどが、TDE表領域暗号化には適用されないことを意味します。
-
インポートおよびエクスポート操作を実行するには、Oracle Data Pumpを使用します。
6.4 暗号化された新しい表領域の作成
新しい表領域を作成する際、作成のプロセス中に暗号化設定を構成できます。
6.4.1 ステップ1: 表領域暗号化のCOMPATIBLE初期化パラメータの設定
暗号化された表領域を作成する前に、COMPATIBLE初期化パラメータを設定する必要があります。
6.4.1.1 表領域暗号化のためのCOMPATIBLE初期化パラメータの設定について
最小のCOMPATIBLE初期化パラメータ設定である11.2.0.0では、表領域暗号化機能の完全なセットが有効になります。
互換性を11.2.0.0に設定すると、次の機能を使用できます。
-
11.2.0.0に設定することにより、データベースでは、データの暗号化にサポートしている4つのアルゴリズム(3DES168、AES128、AES192およびAES256)の任意のものを使用できます。 -
11.2.0.0に設定することで、TDEウォレットから外部キーストアにキーを移行できます(TDEマスター暗号化キーが外部キーストア用に構成されていることを確認してください)。 -
11.2.0.0に設定することにより、TDEマスター暗号化キーをキー更新できます。
COMPATIBLEパラメータを11.2.0.0に設定すると、変更を元に戻せないことに注意してください。表領域暗号化を使用するには、互換性設定が最低でも11.2.0.0であることを確認します。
6.4.2 ステップ2: TDEマスター暗号化キーの設定
WALLET_ROOTおよびTDE_CONFIGURATIONパラメータを設定して、TDEを構成したことを確認する必要があります。
- TDEマスター暗号化キーは、OracleウォレットまたはOracle Key Vaultのいずれかで設定します。統合PDBと分離PDBのコマンドは同じです。
6.4.3 ステップ3: 暗号化された表領域の作成
COMPATIBLE初期化パラメータを設定したら、暗号化された表領域の作成は完了です。
6.4.3.1 暗号化された表領域の作成について
暗号化された表領域を作成するには、CREATE TABLESPACE SQL文を使用します。
暗号化された表領域を作成するには、CREATE TABLESPACEシステム権限が必要です。
表領域が暗号化されたかどうかを確認するために、DBA_TABLESPACESデータ・ディクショナリ・ビューおよびUSER_TABLESPACESデータ・ディクショナリ・ビューのENCRYPTED列を問い合せることができます。
6.4.3.2 暗号化された表領域の作成
暗号化された表領域を作成するには、ENCRYPTION USING句を含むCREATE TABLESPACE文を使用する必要があります。
CREATE TABLESPACE文を実行します。
たとえば:
CREATE TABLESPACE encrypt_ts
DATAFILE '$ORACLE_HOME/dbs/encrypt_df.dbf' SIZE 1M
'ENCRYPTION ENCRYPT';ここでは次のように指定します。
-
'ENCRYPTION ENCRYPT'は、特に指定がないかぎり、暗号化アルゴリズム(AES256)および暗号モード(XTS)のデフォルトを使用します。ENCRYPT句は、表領域を暗号化します。この設定は一重引用符(' ')で囲みます。キー長は、アルゴリズムの名前に含まれています。 TABLESPACE_ENCRYPTIONがAUTO_ENABLEに設定されている場合、'ENCRYPTION [using algorithm] ENCRYPT'キーワードは省略できます。
関連トピック
6.4.3.3 例: AES192を使用する暗号化された表領域の作成
CREATE TABLESPACE SQL文を使用して、暗号化された表領域を作成できます。
例6-1では、AES192アルゴリズムを使用して暗号化された、securespace_1という表領域を作成します。
例6-1 AES192を使用する暗号化された表領域の作成
CREATE TABLESPACE securespace_1 DATAFILE '/home/user/oradata/secure01.dbf' SIZE 150M ENCRYPTION USING 'AES192' ENCRYPT;
6.4.3.4 例: デフォルト・アルゴリズムを使用する暗号化された表領域の作成
CREATE TABLESPACE SQL文を使用して、デフォルト・アルゴリズムを使用する暗号化された表領域を作成できます。
例6-2では、securespace_2という表領域を作成します。暗号化アルゴリズムが指定されていないため、デフォルトの暗号化アルゴリズム(AES256)が使用されます。
例6-2 デフォルト・アルゴリズムを使用する暗号化された表領域の作成
CREATE TABLESPACE securespace_2 DATAFILE '/home/user/oradata/secure01.dbf' SIZE 150M ENCRYPTION ENCRYPT;
6.5 表領域暗号化のデフォルト・アルゴリズムの設定
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHMは、特定の暗号化シナリオに適用されます。
- Oracle Database 23aiでは、ポスト量子攻撃に対する耐性が最も高いため、
AES256(XTS暗号モードを使用)がデフォルトです。短いデータ暗号化キーを使用することはお薦めしません。 - 暗号化アルゴリズムを指定できない暗号化コマンド
- 暗号化構文なしで作成された新しい表領域
SYSTEM表領域の暗号化アルゴリズム
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHMは、Oracle Key Vaultでの最初のSET KEY操作またはウォレットベースのTDE構成のCREATE KEYSTOREコマンドの前に設定されている場合にのみ有効になります。
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHMは、オフライン表領域暗号化操作とオンライン表領域暗号化操作の両方に適用されます。TABLESPACE_ENCRYPTIONが適切に設定されている場合、将来の暗号化表領域にも適用されます。マルチテナント環境では、CDBルートまたは個々のPDBでTABLESPACE_ENCRYPTION_DEFAULT_ALGORITHMを設定できます。
6.6 将来の表領域の暗号化
将来作成する表領域を自動的に暗号化するようOracle Databaseを構成できます。
6.6.1 将来の表領域の暗号化について
ENCRYPT_NEW_TABLESPACES動的データベース初期化パラメータは、将来の表領域が暗号化されるかどうかを制御します。
デフォルトでは、すべてのOracle Cloudデータベースは暗号化されます。そのようなデータベースに既製のアプリケーションをインストールすると、そのインストール・スクリプトには暗号化構文がない可能性があります。この場合、ENCRYPT_NEW_TABLESPACESがCLOUD_ONLYに設定されているため、これらの表領域は暗号化されて作成されます。
ノート:
Oracle Database 23ai以降では、ENCRYPT_NEW_TABLESPACES初期化パラメータが非推奨になりました。Oracleでは、初期化パラメータTABLESPACE_ENCRYPTIONを使用することをお薦めします。
Oracle Cloud環境では、Oracle Cloud環境およびオンプレミスの環境に暗号化された表領域を作成するときに、次のシナリオが発生する場合があります。
-
Oracle Cloud内にデータベースを作成している場合、
TABLESPACE_ENCRYPTIONパラメータがAUTO_ENABLEに設定されているため、表領域は暗号化されます。ところが、そういった意図がないか、暗号化されたデータベースをオンプレミスに戻すAdvanced Security Optionライセンスさえも持っていない場合があります。この場合、Oracle Recovery Manager (Oracle RMAN)には、AS DECRYPTEDを複製またはリストアするオプションがあります。 -
プライマリ・データベースがオンプレミスで、スタンバイ・データベースがOracle Cloudにある、ハイブリッド環境を作成します。切り替え操作が行われた場合、新しいプライマリはOracle Cloud上になります。たとえば、Advanced Security Option (ASO)ライセンスを持っておらず、自動的に暗号化された表領域がOracle Cloudにあるとします。オンプレミスのスタンバイ・データベースも自動的に暗号化され、オンプレミスのスタンバイ・データベースも
TABLESPACE_ENCRYPTIONをDECRYPT_ONLYに設定できます。「透過的データ暗号化(TDE)ライセンスのないハイブリッドOracle Data Guard」のOracle Database Product Management Youtubeビデオを参照してください。
関連トピック
6.7 データ・ディクショナリ内の機密資格証明データの暗号化
SYS.LINK$システム表およびSYS.SCHEDULER$_CREDENTIALシステム表内の機密資格証明データを暗号化できます。
デフォルトでは、SYS.LINK$システム表内およびSYS.SCHEDULER$_CREDENTIALシステム表内の資格証明データは、不明瞭化されています。ただし、多くのタイプの不明瞭化解除アルゴリズムが使用可能であるため、Oracleでは、この機密資格証明データを暗号化することをお薦めします。データ・ディクショナリ資格証明のステータスを確認するために、DICTIONARY_CREDENTIALS_ENCRYPTデータ・ディクショナリ・ビューを問い合せることができます。
これらの2つのシステム表内の機密資格証明データの暗号化には、透過的データ暗号化を使用します。資格証明データを暗号化するには、Oracle Advanced Security Optionライセンスを所有している必要はありませんが、SYSKM管理権限が付与されている必要があります。また、データベースでは、完全に機能する透過的データ暗号化が設定されている必要があります。資格証明データの暗号化には、AES256アルゴリズムを使用します。
関連トピック
6.8 既存の表領域のオフライン暗号化
ALTER TABLESPACE文またはALTER DATABASE DATAFILE SQL文をENCRYPT句またはDECRYPT句とともに使用して、オフライン暗号化を実行できます。
6.8.1 既存の表領域のオフライン暗号化について
表領域がオフラインのとき、またはデータベースが開いていないときに、ユーザー表領域の既存のデータ・ファイルを暗号化または復号化できます。
暗号化または復号化の実行には、次の2つのオプションがあります:
- データファイル・レベルのオフライン暗号化: このタイプには、暗号化アルゴリズムを指定するオプションはありません。デフォルトの暗号化アルゴリズムが使用されます。たとえば:
ALTER DATABASE DATAFILE 'path_to_data_file.dbf' ENCRYPT; - 表領域のオフライン暗号化: 次の構文を使用します。
[USING 'algorithm']を省略すると、デフォルトの暗号化アルゴリズムが使用されます。ALTER TABLESPACE tablespace_name ENCRYPTION OFFLINE [USING 'algorithm'] ENCRYPT;
このオフラインの暗号化方法は、データベースの互換性をOracle Database 11cリリース2 (11.2)またはOracle Database 12cリリース1 (12.1)からリリース19cに変更する(元に戻すことはできません)ことを計画していない場合に使用します。オフラインの暗号化方法は、このデータベースをリリース19cにアップグレードする前に、透過的データ暗号化を簡単に利用する場合にも便利です。オフライン表領域は、暗号化と復号化の両方を行うことができます。
次の点に注意してください。
-
Oracle Database提供の表領域(
SYSTEM、SYSAUXおよびUNDO)をオフライン変換方法を使用して暗号化する場合には、オフライン変換で既存のデータベースを暗号化する場合に推奨される方法を使用する必要があります。 -
オンラインの方法を使用して、キー更新、暗号化アルゴリズムの変更またはオフラインの方法で以前に暗号化した表領域を復号化できます。
-
Oracle Data Guardを構成している場合には、先にスタンバイの表領域を暗号化し、プライマリに切り替えてから、新しいスタンバイ・データベースの表領域をオフライン暗号化することによって、停止時間を最小限に抑えることができます。オフライン暗号化(データファイルおよび表領域レベルの両方)は、最初にスタンバイで実行されます。オンライン暗号化はOracle Data Guardトランザクションであるため、スタンバイ・データベースでリプレイされます。
-
USING ... ENCRYPT句を使用して、暗号化アルゴリズムを指定できます。サポートされているアルゴリズムは、128、192および256ビットのキー長のAESおよびARIAです。暗号化キーを確認するには、V$DATABASE_KEY_INFOビューのENCRYPTIONALG列を問い合せます。ノート:
Oracle Database 23ai以降では、GOSTおよびSEEDアルゴリズムの透過的データ暗号化(TDE)復号化ライブラリは非推奨になり、GOSTおよびSEEDへの暗号化はサポートされなくなります。Oracle Database 23ai以降、GOSTおよびSEEDアルゴリズムの透過的データ暗号化(TDE)暗号化ライブラリはサポートされなくなり、削除されました。GOSTおよびSEED復号化ライブラリは非推奨です。どちらも、HP Itaniumプラットフォームでは削除されます。GOST 28147-89はロシア政府によって非推奨とされ、SEEDは韓国政府によって非推奨とされました。韓国政府が承認したTDE暗号化が必要である場合は、かわりにARIAを使用します。GOST 28147-89を使用している場合は、サポートされている別のTDEアルゴリズムを使用して、復号化および暗号化する必要があります。GOST 28147-89およびSEEDの復号化アルゴリズムはOracle Database 23aiに含まれていますが、非推奨であり、GOST暗号化アルゴリズムはOracle Database 23aiでサポートが終了しました。TDE暗号化にGOSTまたはSEEDを使用している場合、Oracleでは、Oracle Database 23aiにアップグレードする前に、オンラインのキー更新操作を実行することをお薦めします。ただし、HP Itaniumプラットフォームを除き、Oracle Database 23aiではGOSTおよびSEED復号化ライブラリを使用できるため、アップグレード後に復号化することもできます。
-
今後のオフライン表領域暗号化操作のためにデフォルトの暗号化アルゴリズムを設定するには、
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM動的パラメータを設定します。 -
ALTER TABLESPACE文を使用すると、各種のデータ・ファイルを暗号化するために、オフライン表領域を複数のフォアグラウンド・セッションを使用して並列で変換できます。 -
Oracle Data Guardを使用する場合には、先にスタンバイの表領域を暗号化し、切り替えてから、次に元のプライマリの表領域を暗号化することによって、停止時間を最小限に抑えることができます。
-
Oracle Database 11gリリース2 (11.2.0.4)およびOracle Database 12cリリース1 (12.1.0.2)では、表領域
SYSTEMおよびSYSAUXのオフライン暗号化は実行できません。Oracle Database 19cより前のリリースでは、SYSTEM、SYSAUX、TEMPおよびUNDO表領域は暗号化できません。また、これらのリリースでUNDO表領域をオフラインで暗号化することはお薦めしません。これを行うとキーストアを閉じられなくなり、データベースが機能しなくなります。また、暗号化された表領域に関連付けられたすべてのUNDOレコードは、すでに自動的にUNDO表領域に暗号化されているため、データベースがオフラインの間にUNDO表領域を暗号化する必要はありません。TEMP表領域を暗号化するには、削除してから、暗号化して再作成する必要があります。
6.8.2 オフライン変換での既存のユーザー定義表領域の暗号化
既存の表領域をオフライン変換で暗号化するには、ALTER TABLESPACE SQL文をOFFLINE句およびENCRYPT句とともに使用できます。
SYSTEMおよびUNDOは、オフラインにできません。表領域をオフラインで暗号化する場合には、オフライン変換での既存のデータベースの暗号化に記載された方法を使用する必要があります。
関連トピック
6.9 既存のオンライン表領域の暗号化変換
ALTER TABLESPACE SQL文をONLINEおよびENCRYPTまたはDECRYPT句とともに使用することによって、オンラインの既存の表領域を暗号化および復号化できます。
6.9.1 既存のオンライン表領域の暗号化変換について
既存のユーザー表領域、SYSTEM、SYSAUXおよびUNDO表領域がオンラインのとき、これらを暗号化、復号化またはキー更新できます。
ただし、一時表領域をオンラインで暗号化、復号化またはキー更新することはできません。
オンラインの表領域は、CREATE TABLESPACE SQL文のONLINE句を使用して作成できます。表領域をオンラインで暗号化またはキー更新すると、表領域は固有の暗号化キーおよびアルゴリズムを持つことになります。
次の点に注意してください。
-
オフライン表領域が暗号化されている場合、オンラインでキー更新して別のアルゴリズムを使用できます。
-
異なる表領域を暗号化するために、複数のフォアグラウンド・セッションを使用して、複数の表領域をオンラインで並列して暗号化できます。各表領域内では、データ・ファイルは順に暗号化されます。
-
今後のオンライン表領域暗号化操作のためにデフォルトの暗号化アルゴリズムを設定するには、
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM動的パラメータを設定します。 -
変換が中断された場合、
ALTER TABLESPACESQL文のFINISH句を発行してプロセスを再開できます。 -
各オンライン表領域変換に対してREDOログが生成されます。
-
表領域
SYSTEMおよびUNDOは、他の表領域と同時に暗号化しないでください。 -
表領域を暗号化している間は、Oracle Data Pumpでトランスポータブル表領域機能を使用できません。
-
ALTER TABLESPACE文は、次の機能と同時に実行することはできません。-
ADMINISTER KEY MANAGEMENT SET KEYSQL文 -
FLASHBACK DATABASESQL文
-
-
データ・ファイルにOracle Managed Filesを使用する場合、暗号化プロセスは表領域に関連付けられたデータ・ファイルをキー更新し、それらをデフォルトのOracle Managed Filesの場所にコピーまたは移動します。
-
新しいファイルは、暗号化した後に表領域に追加できます。Oracle Databaseは新しいファイルを新しい暗号化キーで再フォーマットします。新しいキーを使用してブロックが暗号化されます。
-
ルートまたはPDBで行われた以前の操作は、オンライン変換プロセスを開始する前に、制御ファイルをデータ・ディクショナリに対してクロスチェックする必要がある場合があります。
ORA-241 operation disallowed: control file is not yet checked against data dictionaryエラーが発生する場合があります。この問題を解決するには、ルートまたはPDBを再起動し、再度オンライン変換コマンドの発行を試行します。 - セキュリティ上の理由から、オンライン変換によってデータ・ファイルが処理されると、元のデータ・ファイルが削除前にゼロアウトされます。これにより、データベースがディスク・セクターにゴースト・データを残さなくなります。ただし、Oracle Recovery Manager (Oracle RMAN)のファイルの検証と同時にオンライン表領域変換を実行した場合に発生する可能性がある既知の制限があります。オンライン表領域変換では、各ファイルが一度に1つずつ処理されます。オンライン表領域変換によってファイルが処理されているときにOracle RMANがファイルを検証した場合、Oracle RMANが破損の問題を報告することがあります(
ORA-01578: Oracleデータ・ブロックに障害が発生しました(ファイル番号%s、ブロック番号%s))。このようになるのは、ファイルを構成するブロックがゼロと見なされるためです。これは間違ったアラームであり、このエラーは無視できます。これが発生した場合は、Oracle RMAN検証プロセスを再度実行してください。
6.9.2 オンライン変換での既存の表領域の暗号化
オンライン変換で既存の表領域を暗号化するには、ALTER TABLESPACEをONLINEおよびENCRYPT句とともに使用します。
V$ENCRYPTED_TABLESPACES動的ビューのSTATUS列を問い合せて、暗号化ステータスを確認できます。このビューのENCRYPTIONALG列には、使用されている暗号化アルゴリズムが示されます。変換プロセスが中断された場合、ALTER TABLESPACEをFINISH句とともに実行してプロセスを再開できます。たとえば、プライマリ・データ・ファイルが変換され、スタンバイ・データ・ファイルは変換されなかった場合、スタンバイ・データ・ファイルのスタンバイ・データベースでALTER TABLESPACE ... FINISHを実行できます。
6.9.3 オンライン変換での既存の表領域のキー更新
オンラインの既存の表領域をキー更新するには、ALTER TABLESPACE SQL文のREKEY句を使用できます。
-
TEMP表領域をキー更新することはできません。TEMP表領域に異なる暗号化アルゴリズムを割り当てる場合には、TEMPを削除して、正しい暗号化アルゴリズムで再作成します。 -
オンライン表領域のキー更新操作とマスター・キーの操作を同時に実行しないでください。いずれかの表領域が現在キー更新中かどうかを確認するには、次の問合せを発行して、暗号化された表領域のキー更新ステータスを確認します。
SELECT TS#,ENCRYPTIONALG,STATUS FROM V$ENCRYPTED_TABLESPACES;
REKEYINGというステータスは、対応する表領域がまだキー更新中であることを意味します。このステータスが適用される間は、マスター・キーをキー更新しないでください。
オンライン変換を使用して既存の表領域をキー更新するには:
ALTER TABLESPACEをFINISH句とともに実行してプロセスを再開できます。
6.9.4 オンライン変換によるSYSAUX表領域およびUNDO表領域のキー更新
SYSAUXおよびUNDOオンライン表領域をキー更新するには、ALTER TABLESPACE SQL文のREKEY句を使用できます。
関連トピック
6.9.5 オンライン変換での既存の表領域の復号化
既存の表領域をオンライン変換で復号化するには、ALTER TABLESPACE SQL文をDECRYPT句とともに使用できます。
ALTER TABLESPACEをFINISH句とともに実行してプロセスを再開できます。
6.9.6 中断されたオンライン暗号化変換の終了
オンライン暗号化プロセスが中断された場合は、FINISH句を使用してALTER TABLESPACE文を再実行することで、変換を完了できます。
ALTER TABLESPACE SQL文のFILE_NAME_CONVERT句でのORA-28425: missing a valid FILE_NAME_CONVERT clauseエラーなどの可能性があります。中断されたプロセスの他の例としては、変換でデータ・ファイルをスキップした場合(Oracleデータベース・ライター(DBWR)プロセスがデータ・ファイルをオフラインにしたときにエラーがあった場合に発生する可能性がある)や、補助ファイルのための十分な領域がない場合などがあります。ALTER TABLESPACE文をFINISH句を指定して再実行しない場合であっても、表領域は操作可能である必要があります。
中断された暗号化プロセスに加えて、ステータスがENCRYPTINGの期間中に表領域の暗号化プロセスが失敗することがあります。この場合、表領域を復号化して元の状態に戻すか、ALTER TABLEPSPACEのENCRYPTION ONLINE FINISH ENCRYPT句を使用して暗号化を再開できます。
6.11 DBCAを使用した暗号化データベースの作成
DBCAを使用して、単一インスタンスのマルチテナント環境とOracle Data Guard環境の両方で暗号化データベースを作成できます。
6.12 既存のデータベースの暗号化変換
オフラインおよびオンライン両方のデータベースを暗号化できます。
6.12.1 既存のデータベースの暗号化変換について
データベース全体の暗号化変換では、Oracle提供のSYSTEM、SYSAUX、UNDOおよびTEMP表領域を含むすべての表領域が暗号化されます。
次の点に注意してください。
-
Database Configuration Assistant (DBCA)を使用してデータベースを作成または構成する場合は、作成または構成プロセスの一部としてTDEウォレットをデータベースに作成できます。DBCAを使用してデータベースを削除すると、このデータベースにあるTDEウォレットも削除されます。重要: DBCAを使用してデータベースを削除する前に、ローカルTDEウォレットがある場合は、これらのウォレットを安全な場所にバックアップします。データベースがOracle Key Vaultを使用するように移行されている場合は、そのTDE暗号化キーはOracle Key Vaultサーバーに存在することに注意してください。Oracle Key Vaultをバックアップするのは、Oracle Key Vault管理者の責任です。
-
暗号化を実行するには、表領域暗号化変換のオフラインおよびオンライン機能を使用できます。
-
Oracle提供の表領域のどれかまたはすべてを、任意の順に暗号化できます。Oracle提供の表領域の暗号化は、ユーザー作成の表領域の暗号化に影響が及ぶことはありません。
-
Oracle提供の表領域を暗号化する際、Oracle Databaseはキーストアが閉じないようにします。
-
既存の一時表領域は暗号化できませんが、暗号化された一時表領域を作成し、その新しい暗号化された一時表領域をデフォルト一時表領域として使用するようデータベースを構成してから、古いクリアテキストの一時表領域を削除できます。
-
暗号化された表領域の機密データから生成されたメタデータ
UNDOおよびTEMPは、すでに自動的に暗号化されています。そのため、UNDOおよびTEMPの暗号化はオプションです。 -
データベース内のすべての表領域を暗号化するパフォーマンスの影響は、ワークロードおよびプラットフォームにより異なります。近年のCPUの多くには、内蔵のハードウェア・アクセラレーションが搭載されているため、パフォーマンスへの影響は最小限になります。
-
マルチテナント環境では、Oracle提供の表領域を含めた、プラガブル・データベース(PDB)内の表領域を暗号化できます。ただし、CDBルート内のキーストアは、PDBがキーストアを開けるように、常に開いている必要があります。キーストアが開いているかどうかのステータスは、
V$ENCRYPTION_WALLETビューのSTATUS列を問い合せて、確認できます。
6.12.2 オフライン変換での既存のデータベースの暗号化
既存のデータベースをオフライン変換で暗号化する場合、Oracle管理の表領域には暗号化アルゴリズムを指定しません。
SYSTEM、SYSAUXおよびUNDO表領域に異なる暗号化アルゴリズムを使用(TDEマスター暗号化キーを変更)する場合は、オンライン変換を使用する必要があります。サポートされている暗号化アルゴリズムは、AES128に加えて、AES192とAES256、およびARIA、GOSTなどのその他のアルゴリズムです。
ノート:
Oracle Database 23ai以降では、GOSTおよびSEEDアルゴリズムの透過的データ暗号化(TDE)復号化ライブラリは非推奨になり、GOSTおよびSEEDへの暗号化はサポートされなくなります。Oracle Database 23ai以降、GOSTおよびSEEDアルゴリズムの透過的データ暗号化(TDE)暗号化ライブラリはサポートされなくなり、削除されました。GOSTおよびSEED復号化ライブラリは非推奨です。どちらも、HP Itaniumプラットフォームでは削除されます。GOST 28147-89はロシア政府によって非推奨とされ、SEEDは韓国政府によって非推奨とされました。韓国政府が承認したTDE暗号化が必要である場合は、かわりにARIAを使用します。GOST 28147-89を使用している場合は、サポートされている別のTDEアルゴリズムを使用して、復号化および暗号化する必要があります。GOST 28147-89およびSEEDの復号化アルゴリズムはOracle Database 23aiに含まれていますが、非推奨であり、GOST暗号化アルゴリズムはOracle Database 23aiでサポートが終了しました。TDE暗号化にGOSTまたはSEEDを使用している場合、Oracleでは、Oracle Database 23aiにアップグレードする前に、オンラインのキー更新操作を実行することをお薦めします。ただし、HP Itaniumプラットフォームを除き、Oracle Database 23aiではGOSTおよびSEED復号化ライブラリを使用できるため、アップグレード後に復号化することもできます。