6 表領域およびデータベースの暗号化変換

オンラインとオフラインの両方の表領域およびデータベースで暗号化操作を実行できます。

6.1 表領域およびデータベースの暗号化変換について

CREATE TABLESPACE SQL文を使用して、新しい表領域を暗号化できます。ALTER TABLESPACEによって、既存の表領域を暗号化できます。

新規または既存の表領域の暗号化に加えて、全データベースを暗号化できます。その場合、Oracle管理の表領域(このリリースではSYSTEMSYSAUXTEMPおよびUNDO表領域)も暗号化されます。Oracle提供の表領域には、データベース・システムの正しい機能(機密保護、整合性および可用性)のために必要な情報が格納されます。この情報には、システムのデータ・ディクショナリ、システムの一時ソート領域、システムのUNDOセグメントおよびシステムの補助データが含まれます。この情報はOracleデータベース・サーバーそのものによって内部的に更新されることのみを意図しており、通常、ユーザーが直接更新することはありません。

全データベースを暗号化するには、ALTER DATABASEではなく、ALTER TABLESPACEを使用してOracle管理の表領域を暗号化します。

次の表で、表領域およびデータベースのオフラインとオンラインの暗号化変換の違いを比較します。

表6-1 オフラインとオンラインの表領域およびデータベースの暗号化変換

機能 オフライン変換 オンライン変換

最小の変換機能があるリリース

Oracleデータベース11gリリース2 (11.2)

Oracle Database 12cリリース2 (12.2)以降

バックポートできるもの

AES128アルゴリズムを使用してデータ・ファイルを暗号化または復号化する機能(ALTER DATABASE DATAFILE data_file ENCRYPTまたはDECRYPTを使用)は、Oracle Databaseリリース12.1.0.2および11.2.0.4で使用できます。

いいえ

サポートされるアルゴリズム

TDEがサポートするすべての対称型暗号化アルゴリズム。

TDEがサポートするすべての対称型暗号化アルゴリズム。

変換をいつ実行できるか

表領域がオフラインであるか、データベースがマウント段階にあるとき。

表領域がオンラインで、データベースが読取り/書込みモードで開いているとき。

変換に補助領域が必要か

いいえ

はい。

Oracle Data Guardの変換ガイドライン

プライマリおよびスタンバイの両方を手動で変換します。スタンバイを最初に変換し、最小停止時間に切り替えます

プライマリを変換した後、スタンバイ変換が自動的に行われます。スタンバイでは、オンライン変換を直接実行することはできません。

表領域SYSTEMSYSAUXおよびUNDOの暗号化(データベース変換)

Oracle Database 12cリリース2 (12.2)以降のみ。COMPATIBILITY12.2.0.0に設定する必要があります。自動ログイン・キーストアのみがサポートされています。

Oracle Database 12cリリース2 (12.2)以降のみ。COMPATIBILITY12.2.0.0に設定する必要があります。

既存のTEMP表領域を変換できるか

いいえ、ただし、Oracle Database 12cリリース2 (12.2)以降でTEMP表領域を作成して暗号化し、それをデフォルトの一時表領域とし、元のTEMP表領域を削除できます。

いいえ、ただし、Oracle Database 12cリリース2 (12.2)以降でTEMP表領域を作成して暗号化し、それをデフォルトの一時表領域とし、元のTEMP表領域を削除できます。

既存の表領域を復号化できるか

以前にオフライン暗号化操作によって暗号化された表領域またはデータ・ファイルのみ復号化できます。一度暗号化されたUNDO表領域を復号化することはお薦めしません。

はい、ただし、一度暗号化されたUNDO表領域を復号化することはお薦めしません。

暗号化キーをキー更新できるか

いいえ、ただし、表領域が暗号化された後、オンライン変換を使用してOracle Database 12cリリース2 (12.2)の互換性でキー変更できます。

はい

暗号化操作を並列して実行できるか

複数のユーザー・セッションを実行しているデータ・ファイル・レベルで、並列した暗号化変換を実行できます。

複数のユーザー・セッションが実行している表領域レベルで、並列した暗号化変換を実行できます。

暗号化変換SQL文が完了できなかった場合どうするか

暗号化または復号化SQL文を再発行して、表領域内のすべてのデータ・ファイルが確実に一貫して暗号化または復号化されるようにします。

FINISH句を使用してSQL文を再度実行します。

6.2 暗号化された表領域に対する閉じられたTDEキーストアの影響

Oracle管理の表領域が暗号化されている場合は、TDEキーストアを閉じたり、移行したりできますが、Oracle管理の表領域に対する操作を禁止するにはデータベース・システム自体を停止する必要があります。

閉じられたTDEキーストアは、暗号化されたOracle管理の表領域(このリリースでは、SYSTEMSYSAUXTEMPおよび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管理の表領域の両方が暗号化されている
  • ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY password;
  • SHUTDOWN
SHUTDOWN
  • STARTUP MOUNT;
  • ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password;
  • ALTER DATABASE OPEN
  • STARTUP MOUNT;
  • ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password;
  • ALTER DATABASE OPEN
ユーザー表領域は暗号化されていて、Oracle管理の表領域は暗号化されていない
  • ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY password;
  • SHUTDOWN
該当なし
  • STARTUP MOUNT;
  • ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password;
  • ALTER DATABASE OPEN
該当なし
ユーザー表領域は暗号化されておらず、Oracle管理の表領域は暗号化されている 該当なし SHUTDOWN 該当なし
  • STARTUP MOUNT;
  • ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password;
  • ALTER DATABASE OPEN
ユーザー表領域も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つのアルゴリズム(3DES168AES128AES192およびAES256)の任意のものを使用できます。

  • 11.2.0.0に設定することにより、ソフトウェア・キーストアから外部キーストアにキーを移行できます(TDEマスター暗号化キーが外部キーストア用に構成されていることを確認してください)。

  • 11.2.0.0に設定することにより、TDEマスター暗号化キーをキー更新できます。

COMPATIBLEパラメータを11.2.0.0に設定すると、変更を元に戻せないことに注意してください。表領域暗号化を使用するには、互換性設定が最低でも11.2.0.0であることを確認します。

6.4.1.2 表領域暗号化のためのCOMPATIBLE初期化パラメータの設定

COMPATIBLE初期化パラメータを設定するには、データベース・インスタンスの初期化パラメータを編集する必要があります。

  1. 管理権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
  2. COMPATIBLEパラメータの現在の設定を確認します。
    たとえば:
    SHOW PARAMETER COMPATIBLE
     
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    compatible                           string      12.2.0.0
    noncdbcompatible                     BOOLEAN     FALSE
    
  3. COMPATIBLEパラメータを変更する必要がある場合、この手順の残りのステップを実行します。
    値は11.2.0.0以降である必要があります。
  4. コマンドラインから、データベース・インスタンスの初期化パラメータ・ファイルを特定します。
    • UNIXシステム: このファイルは、ORACLE_HOME/dbsディレクトリにあり、initORACLE_SID.ora (initmydb.oraなど)という名前です。
    • Windowsシステム: このファイルは、ORACLE_HOME\databaseディレクトリにあり、initORACLE_SID.ora (initmydb.oraなど)という名前です。
  5. 初期化パラメータ・ファイルを新しいCOMPATIBLE設定を使用するよう編集します。
    たとえば:
    COMPATIBLE=20.1.0.0
  6. SYSDBA管理権限を持つユーザーとして接続し、データベースを再起動します。
    • CDBルートから:
      SHUTDOWN IMMEDIATE
      STARTUP
      
    • PDBから:
      ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
      ALTER PLUGGABLE DATABASE pdb_name OPEN;
  7. 表領域の暗号化を使用している場合は、データベース・マウントでキーストアを開きます。キーストアは、暗号化された表領域のデータにアクセスする前に開いている必要があります。
    たとえば:
    STARTUP MOUNT;
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY keystore_password;
    ALTER DATABASE OPEN;

6.4.2 ステップ2: 表領域TDEマスター暗号化キーの設定

TDEマスター暗号化キーが構成されていることを確認する必要があります。

  • 統一モードまたは分離モードで使用するステップと同じステップを使用して、ソフトウェアTDEマスター暗号化キーまたはハードウェアTDEマスター暗号化キーのTDEマスター暗号化キーを設定します。

6.4.3 ステップ3: 暗号化された表領域の作成

COMPATIBLE初期化パラメータを設定したら、暗号化された表領域の作成は完了です。

6.4.3.1 暗号化された表領域の作成について

暗号化された表領域を作成するには、CREATE TABLESPACE SQL文を使用します。

暗号化された表領域を作成するには、CREATE TABLESPACEシステム権限が必要です。

Oracle Data Pumpを使用して、暗号化された表領域にデータをインポートできます。CREATE TABLE...AS SELECT...ALTER TABLE...MOVE...などのSQL文を使用して、暗号化された表領域にデータを移動することもできます。CREATE TABLE...AS SELECT...文は、既存の表から表を作成します。ALTER TABLE...MOVE...文は、暗号化された表領域に表を移動します。

セキュリティ上の理由から、NO SALTオプションを使用して表領域を暗号化することはできません。

表領域が暗号化されたかどうかを確認するために、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 USING 'AES256' ENCRYPT;

ここでは次のように指定します。

  • ENCRYPTION USING 'AES256' ENCRYPTは、暗号化アルゴリズムおよび暗号化キーの長さを指定します。ENCRYPT句は、表領域を暗号化します。この設定は一重引用符(' ')で囲みます。キー長は、アルゴリズムの名前に含まれています。暗号化アルゴリズムを指定しない場合は、デフォルトの暗号化アルゴリズムAES128が使用されます。

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という表領域を作成します。暗号化アルゴリズムが指定されていないため、デフォルトの暗号化アルゴリズム(AES128)が使用されます。キー長は128ビットです。

既存の表領域は暗号化できません。

例6-2 デフォルト・アルゴリズムを使用する暗号化された表領域の作成

CREATE TABLESPACE securespace_2
DATAFILE '/home/user/oradata/secure01.dbf'
SIZE 150M
ENCRYPTION ENCRYPT;

6.5 表領域暗号化のデフォルト・アルゴリズムの設定

TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHMは、特定の暗号化シナリオに適用されます。

それは次のような場合です。
  • 暗号化アルゴリズムを指定できない暗号化コマンド
  • 暗号化構文なしで作成された新しい表領域
  • 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を設定できます。

  • 次のALTER SYSTEM文を入力します。
    ALTER SYSTEM SET TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM = value SCOPE=BOTH;

    この指定では、valueに暗号化アルゴリズムAES128AES192AES2563DES168ARIA128ARIA192またはARIA256のいずれかを指定できます。デフォルトの暗号化アルゴリズムはAES256です。3DES168の場合、FIPSモードでは、AES128AES192およびAES256のみを、このパラメータに指定できることに注意してください。

    ノート:

    Oracle Database 23c以降では、GOSTおよびSEEDアルゴリズムのTransparent Data Encryption (TDE)復号化ライブラリは非推奨になり、GOSTおよびSEEDへの暗号化はサポートされなくなります。Oracle Database 23c以降、GOSTおよびSEEDアルゴリズムのTransparent Data Encryption (TDE)暗号化ライブラリはサポートされなくなり、削除されました。GOSTおよびSEED復号化ライブラリは非推奨です。どちらも、HP Itaniumプラットフォームでは削除されます。

    GOST 28147-89はロシア政府によって非推奨とされ、SEEDは韓国政府によって非推奨とされました。韓国政府が承認したTDE暗号化が必要である場合は、かわりにARIAを使用します。GOST 28147-89を使用している場合は、サポートされている別のTDEアルゴリズムを使用して、復号化および暗号化する必要があります。GOST 28147-89およびSEEDの復号化アルゴリズムはOracle Database 23cに含まれていますが、非推奨であり、GOST暗号化アルゴリズムはOracle Database 23cでサポートが終了しました。TDE暗号化にGOSTまたはSEEDを使用している場合は、Oracle Database 23cにアップグレードする前に、別のアルゴリズムで復号化および暗号化することをお薦めします。ただし、HP Itaniumプラットフォームを除き、Oracle Database 23cではGOSTおよびSEED復号化ライブラリを使用できるため、アップグレード後に復号化することもできます。

6.6 将来の表領域の暗号化

将来作成する表領域を自動的に暗号化するようOracle Databaseを構成できます。

6.6.1 将来の表領域の暗号化について

ENCRYPT_NEW_TABLESPACES動的データベース初期化パラメータは、将来の表領域が暗号化されるかどうかを制御します。

デフォルトでは、すべてのOracle Cloudデータベースは暗号化されます。そのようなデータベースに既製のアプリケーションをインストールすると、そのインストール・スクリプトには暗号化構文がない可能性があります。この場合、ENCRYPT_NEW_TABLESPACESCLOUD_ONLYに設定されているため、これらの表領域は暗号化されて作成されます。

ノート:

Oracle Database 23c以降では、ENCRYPT_NEW_TABLESPACES初期化パラメータが非推奨になりました。

Oracle Database 23cで導入された初期化パラメータTABLESPACE_ENCRYPTIONを使用することをお薦めします。

Oracle Cloud環境では、Oracle Cloud環境およびオンプレミスの環境に暗号化された表領域を作成するときに、次のシナリオが発生する場合があります。

  • Oracle Cloudにテスト・データベースを作成し、ENCRYPT_NEW_TABLESPACEパラメータが、暗号化の際にクラウド・データベースを自動的に作成するよう設定されているときに表領域が暗号化されました。ところが、そういった意図がないか、暗号化されたデータベースをオンプレミスに戻すAdvanced Security Optionライセンスさえも持っていない場合があります。この場合、Oracle Recovery Manager (Oracle RMAN)には、AS DECRYPTEDを複製またはリストアするオプションがあります。

  • プライマリ・データベースがオンプレミスで、スタンバイ・データベースがOracle Cloudにある、ハイブリッド環境を作成します。切り替え操作が行われた場合、新しいプライマリはOracle Cloud上になります。新しい表領域が透過的に暗号化された場合、このリストの最初の項目に対して同様のシナリオが発生することがあります。たとえば、Advanced Security Option (ASO)ライセンスを持っておらず、自動的に暗号化された表領域がOracle Cloudにあるとします。オンプレミスのスタンバイ・データベースも自動的に暗号化されます。この場合、オンプレミス・スタンバイ・データベースにAdvanced Securityライセンス(透過的データ暗号化およびデータ・リダクションを含む)が必要か、スタンバイ・データベースを使用できません。

6.6.2 将来の表領域の暗号化設定

ENCRYPT_NEW_TABLESPACESデータベース初期化パラメータを設定して、将来作成する表領域を自動的に暗号化できます。

ノート:

Oracle Database 23c以降では、ENCRYPT_NEW_TABLESPACES初期化パラメータが非推奨になりました。

Oracle Database 23cで導入された初期化パラメータTABLESPACE_ENCRYPTIONを使用することをお薦めします。

  • 次のALTER SYSTEM文を入力します。
    ALTER SYSTEM SET ENCRYPT_NEW_TABLESPACES = value;

    この仕様では、valueは次のようになります。

    • CLOUD_ONLYでは、CREATE TABLESPACE SQL文のENCRYPTION句を指定しない場合に表領域暗号化のデフォルト・アルゴリズムを使用するか、またはTABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM動的パラメータで指定されたアルゴリズムに従って、クラウドの表領域を透過的に暗号化します。これはOracle Cloud環境にのみ適用されます。表領域をオンプレミスで作成する場合、作成は入力したCREATE TABLESPACE文の指定に従います。たとえば、ENCRYPTION句を省略した場合、表領域は暗号化されずに作成されます。この句を含めて別のアルゴリズムを使用した場合、表領域はそのアルゴリズムを使用します。CLOUD_ONLYがデフォルトです。

    • ALWAYSでは、クラウドおよびオンプレミスの両方のシナリオにおいて、CREATE TABLESPACEENCRYPTION句を省略した場合に表領域暗号化のデフォルト・アルゴリズムを使用するか、またはTABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM動的パラメータで指定されたアルゴリズムに従って、表領域を自動的に暗号化します。

      ただし、ENCRYPTION句を指定した場合、指定したアルゴリズムが表領域暗号化のデフォルト・アルゴリズムよりも優先されます。
    • DDLでは、Oracle Cloudおよびオンプレミスの両方の環境において、CREATE TABLESPACEENCRYPTION句の指定された設定を使用して表領域を暗号化します。

6.7 データ・ディクショナリ内の機密資格証明データの暗号化

SYS.LINK$システム表およびSYS.SCHEDULER$_CREDENTIALシステム表内の機密資格証明データを暗号化できます。

デフォルトでは、SYS.LINK$システム表内およびSYS.SCHEDULER$_CREDENTIALシステム表内の資格証明データは、不明瞭化されています。ただし、多くのタイプの不明瞭化解除アルゴリズムが使用可能であるため、Oracleでは、この機密資格証明データを暗号化することをお薦めします。データ・ディクショナリ資格証明のステータスを確認するために、DICTIONARY_CREDENTIALS_ENCRYPTデータ・ディクショナリ・ビューを問い合せることができます。

これらの2つのシステム表内の機密資格証明データの暗号化には、透過的データ暗号化を使用します。資格証明データの暗号化には、AES256アルゴリズムを使用します。資格証明データを暗号化するには、Oracle Advanced Security Optionライセンスを所有している必要はありませんが、SYSKM管理権限が付与されている必要があります。また、データベースには、開いているキーストアがある必要があります。

6.8 既存のオフライン表領域の暗号化変換

ALTER TABLESPACE SQL文のOFFLINEENCRYPTおよび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提供の表領域(SYSTEMSYSAUXおよびUNDO)をオフライン変換方法を使用して暗号化する場合には、オフライン変換で既存のデータベースを暗号化する場合に推奨される方法を使用する必要があります。

  • オンラインの方法を使用して、キー更新、暗号化アルゴリズムの変更またはオフラインの方法で以前に暗号化した表領域を復号化できます。

  • オフライン・モードでアルゴリズムを変更する場合は、まず表領域を復号化し、新しいアルゴリズムで再暗号化する必要があります。

  • Oracle Data Guardを構成している場合には、先にスタンバイの表領域を暗号化し、プライマリに切り替えてから、新しいスタンバイ・データベースの表領域をオフライン暗号化することによって、停止時間を最小限に抑えることができます。オフライン暗号化(データファイルおよび表領域レベルの両方)は、最初にスタンバイで実行されます。オンライン暗号化はOracle Data Guardトランザクションであるため、スタンバイ・データベースでリプレイされます。

  • USING ... ENCRYPT句を使用して、暗号化アルゴリズムを指定できます。サポートされているアルゴリズムは、128、192および256ビットのキー長のAESおよびARIAです。暗号化キーを確認するには、V$DATABASE_KEY_INFOビューのENCRYPTIONALG列を問い合せます。

    ノート:

    Oracle Database 23c以降では、GOSTおよびSEEDアルゴリズムのTransparent Data Encryption (TDE)復号化ライブラリは非推奨になり、GOSTおよびSEEDへの暗号化はサポートされなくなります。Oracle Database 23c以降、GOSTおよびSEEDアルゴリズムのTransparent Data Encryption (TDE)暗号化ライブラリはサポートされなくなり、削除されました。GOSTおよびSEED復号化ライブラリは非推奨です。どちらも、HP Itaniumプラットフォームでは削除されます。

    GOST 28147-89はロシア政府によって非推奨とされ、SEEDは韓国政府によって非推奨とされました。韓国政府が承認したTDE暗号化が必要である場合は、かわりにARIAを使用します。GOST 28147-89を使用している場合は、サポートされている別のTDEアルゴリズムを使用して、復号化および暗号化する必要があります。GOST 28147-89およびSEEDの復号化アルゴリズムはOracle Database 23cに含まれていますが、非推奨であり、GOST暗号化アルゴリズムはOracle Database 23cでサポートが終了しました。TDE暗号化にGOSTまたはSEEDを使用している場合は、Oracle Database 23cにアップグレードする前に、別のアルゴリズムで復号化および暗号化することをお薦めします。ただし、HP Itaniumプラットフォームを除き、Oracle Database 23cでは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より前のリリースでは、SYSTEMSYSAUXTEMPおよびUNDO表領域は暗号化できません。また、これらのリリースでUNDO表領域をオフラインで暗号化することはお薦めしません。これを行うとキーストアを閉じられなくなり、データベースが機能しなくなります。また、暗号化された表領域に関連付けられたすべてのUNDOレコードは、すでに自動的にUNDO表領域に暗号化されているため、データベースがオフラインの間にUNDO表領域を暗号化する必要はありません。TEMP表領域を暗号化するには、削除してから、暗号化して再作成する必要があります。

6.8.2 オフライン変換での既存のユーザー定義表領域の暗号化

既存の表領域をオフライン変換で暗号化するには、ALTER TABLESPACE SQL文をOFFLINE句およびENCRYPT句とともに使用できます。

この項で説明する手順は、データベース内の個々のユーザーが作成した表領域を暗号化する場合に適用されます。これらの表領域はオフラインで暗号化できます。ただし、Oracle Database提供の表領域SYSTEMおよびUNDOは、オフラインにできません。表領域をオフラインで暗号化する場合には、オフライン変換での既存のデータベースの暗号化に記載された方法を使用する必要があります。
  1. 管理権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    SYSTEM表領域およびSYSAUX表領域で操作を実行するには、SYSDBA管理権限を持っている必要があります。それ以外の場合、SYSKM管理権限で接続します。
  2. 表領域をオフラインにします。
    ALTER TABLESPACE users OFFLINE NORMAL;
  3. 表領域をバックアップします。

    オフライン変換の方法では、補助ディスク領域またはファイルを使用せず、データ・ファイルへ直接インプレースで処理されます。そのため、ユーザー表領域をオフラインで変換する前に、この表領域の全体バックアップを実行する必要があります。

  4. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、ソフトウェア・キーストアを開きます。
    たとえば:
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY software_keystore_password; 
  5. 表領域を暗号化します。
    たとえば、表領域全体を暗号化するには、そのデータ・ファイルを含めます。
    ALTER TABLESPACE users1 ENCRYPTION OFFLINE ENCRYPT;

    この例では、デフォルトの暗号化アルゴリズムAES128を使用して表領域を暗号化します。(AES256がデフォルトです。)別の暗号化アルゴリズムを使用するには、次のような文を入力します。

    ALTER TABLESPACE users2 ENCRYPTION OFFLINE USING 'AES128' ENCRYPT;
    表領域内の個々のデータ・ファイルを暗号化するには、ALTER DATABASE DATAFILE SQL文を使用します。たとえば、データ・ファイルuser_01.dbfおよびuser_02.dbfを暗号化するには次のようにします。
    ALTER DATABASE DATAFILE 'user_01.dbf' ENCRYPT;
    ALTER DATABASE DATAFILE 'user_02.dbf' ENCRYPT;

    同じデータベース・セッションにおいて、これらの文は各データ・ファイルを順に次々と暗号化します。各文を独自のデータベース・セッションで実行した場合、それらは並列で実行されます。

    暗号化プロセスが中断された場合、ALTER TABLESPACE文を再度実行します。中断で予想できるエラーの種類は、ファイル・システムまたは記憶域のファイル・システムのエラーなどの一般的なエラーです。表領域内のデータ・ファイルが一貫して暗号化される必要があります。たとえば、10ファイルある表領域をオフラインにしますが、なんらかの理由で、そのうちの9ファイルのみ暗号化が完了し、1ファイルが復号化されたままになっているとします。このような一貫性のない暗号化の状態で表領域をオンラインに戻すことはできますが、COMPATIBLEパラメータが12.2.0.0以降に設定されている場合は、表領域をこの状態のままにしておかないでください。COMPATIBLE12.2.0.0より小さい場合は、暗号化プロパティがデータ・ファイル間で一致していないと、表領域をオンラインにすることはできません。
  6. 表領域をオンラインに戻すか、データベースを開きます。
    • 表領域をオンラインに戻すには、次のようにします。
      ALTER TABLESPACE users ONLINE;
    • 非マルチテナント環境でデータベースを開くには、次のようにします。

      ALTER DATABASE OPEN
    • マルチテナント環境では、ルートが開いていて、PDBが開いていない場合、オフラインの方法でデータ・ファイルまたは表領域を暗号化できます。たとえば、hr_pdbという名前のPDBの場合は、次のようになります。

      ALTER PLUGGABLE DATABASE hr_pdb OPEN
  7. 変換された表領域の全体バックアップを実行します。

6.8.3 オフライン変換での既存の表領域の復号化

既存の表領域をオフライン変換で復号化するには、ALTER TABLESPACE SQL文をOFFLINE句およびDECRYPT句とともに使用できます。

  1. SYSDBA管理権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    SYSTEM表領域およびSYSAUX表領域で操作を実行するには、SYSDBA管理権限を持っている必要があります。それ以外の場合、SYSKM管理権限で接続します。
  2. 表領域をオフラインにします。
    ALTER TABLESPACE users OFFLINE NORMAL;
  3. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、キーストアを開きます。
    たとえば:
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY software_keystore_password; 
  4. ALTER TABLESPACE SQL文を実行して復号化を実行します。
    たとえば、usersという表領域では次のようにします。
    ALTER TABLESPACE users ENCRYPTION OFFLINE DECRYPT; 

    復号化プロセスが中断された場合、ALTER TABLESPACE文を再度実行します。中断で予想できるエラーの種類は、ファイル・システムまたは記憶域のファイル・システムのエラーなどの一般的なエラーです。表領域内のデータ・ファイルが一貫して復号化される必要があります。たとえば、10ファイルある表領域をオフラインにしますが、なんらかの理由で、そのうちの9ファイルのみ復号化が完了し、1ファイルが暗号化されたままになっているとします。このような一貫性のない復号化の状態で表領域をオンラインに戻すことはできますが、COMPATIBLEパラメータが12.2.0.0以降に設定されている場合は、表領域をこの状態のままにしておかないでください。COMPATIBLE12.2.0.0より小さい場合は、暗号化プロパティがデータ・ファイル間で一致していないと、表領域をオンラインにすることはできません。

  5. 表領域をオンラインにします。
    ALTER TABLESPACE users ONLINE;

6.9 既存のオンライン表領域の暗号化変換

ALTER TABLESPACE SQL文をONLINEおよびENCRYPTまたはDECRYPT句とともに使用することによって、オンラインの既存の表領域を暗号化および復号化できます。

6.9.1 既存のオンライン表領域の暗号化変換について

既存のユーザー表領域、SYSTEMSYSAUXおよびUNDO表領域がオンラインのとき、これらを暗号化、復号化またはキー更新できます。

ただし、一時表領域をオンラインで暗号化、復号化またはキー更新することはできません。

オンラインの表領域は、CREATE TABLESPACE SQL文のONLINE句を使用して作成できます。表領域をオンラインで暗号化またはキー更新すると、表領域は固有の暗号化キーおよびアルゴリズムを持つことになります。

次の点に注意してください。

  • オフライン表領域が暗号化されている場合、オンラインでキー更新して別のアルゴリズムを使用できます。

  • 異なる表領域を暗号化するために、複数のフォアグラウンド・セッションを使用して、複数の表領域をオンラインで並列して暗号化できます。各表領域内では、データ・ファイルは順に暗号化されます。

  • 今後のオンライン表領域暗号化操作のためにデフォルトの暗号化アルゴリズムを設定するには、TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM動的パラメータを設定します。

  • 変換が中断された場合、ALTER TABLESPACE SQL文のFINISH句を発行してプロセスを再開できます。

  • 各オンライン表領域変換に対してREDOログが生成されます。

  • 表領域SYSTEMおよびUNDOは、他の表領域と同時に暗号化しないでください。

  • 表領域を暗号化している間は、Oracle Data Pumpでトランスポータブル表領域機能を使用できません。

  • ALTER TABLESPACE文は、次の機能と同時に実行することはできません。
    • ADMINISTER KEY MANAGEMENT SET KEY SQL文

    • FLASHBACK DATABASE SQL文

  • データ・ファイルに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 TABLESPACEONLINEおよびENCRYPT句とともに使用します。

  1. SYSDBA管理権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    SYSTEM表領域およびSYSAUX表領域で操作を実行するには、SYSDBA管理権限を持っている必要があります。それ以外の場合、SYSKM管理権限で接続します。
  2. COMPATIBLE初期化パラメータが12.2.0.0以上に設定されていることを確認します。

    パラメータの現在の設定を確認するには、SHOW PARAMETERコマンドを使用できます。

  3. データベースが読取り-書込みモードで開いていることを確認します。

    V$INSTANCE動的ビューのSTATUS列を問い合せてデータベースが開いているかどうか、V$DATABASEビューのOPEN_MODE列を問い合せて読取り-書込みモードであるかどうかを確認できます。

  4. 必要に応じて、読取り-書込みモードでデータベースを開きます。
    ALTER DATABASE OPEN READ WRITE;
  5. 補助領域がこの表領域で最も大きいデータ・ファイルと同じかそれ以上のサイズであることを確認します。

    このサイズ要件は、Oracle Databaseが一度に1ファイルずつ変換を実行するためです。たとえば、表領域の大規模なデータ・ファイルが32 GBの場合は、32 GBの補助領域があることを確認します。データ・ファイルが使用する領域を確認するには、V$DATAFILE動的パフォーマンス・ビューのBYTESまたはBLOCKS列を問い合せます。

  6. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、マスター暗号化キーを作成して開きます。

    たとえば:

    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE 'keystore_location' IDENTIFIED BY software_keystore_password;
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY software_keystore_password;
    ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY software_keystore_password WITH BACKUP;
  7. ALTER TABLESPACE文をENCRYPTION句およびENCRYPT句を使用して実行し、暗号化します。

    たとえば、Oracle Managed Files以外のusersという表領域では、次のようにします。

    ALTER TABLESPACE users ENCRYPTION ONLINE USING 'AES256' ENCRYPT FILE_NAME_CONVERT = ('users.dbf', 'users_enc.dbf');

    この例では、次のようになります。

    • ENCRYPTION ONLINE USING ‘AES256’ ENCRYPTは、表領域usersがオンラインの間にこの表領域を暗号化するように文を設定し、表領域にAES256暗号化アルゴリズムを割り当てます。USING algorithm句を省略した場合、デフォルトのアルゴリズムAES256が使用されます。SYSTEM表領域では、ENCRYPT句を使用して表領域を暗号化できますが、暗号化アルゴリズムは最初に既存のデータベース・キーで暗号化されるため、指定できません。SYSTEM表領域の暗号化を行った後、REKEY句を使用してアルゴリズムを指定します。

    • FILE_NAME_CONVERTは、表領域に関連付けられたデータ・ファイルの1つ以上のペアを指定します。ペアの1つ目の名前は既存のデータ・ファイルで、2つ目の名前はこのデータ・ファイルの暗号化されたバージョン(ALTER TABLESPACE文が正常に実行された後に作成される)です。表領域に2つ以上のデータ・ファイルがある場合、この文でそれらすべてを処理する必要があります。次の点に注意してください。

      • 各ファイル名はカンマで区切って、複数のファイルのペアを含めます。たとえば:

        FILE_NAME_CONVERT = ('users1.dbf', 'users1_enc.dbf', 'users2.dbf', 'users2_enc.dbf')
      • ディレクトリ・パスは、FILE_NAME_CONVERT句で指定できます。たとえば、次の句は表領域の一致しているファイルを変換し、dbsディレクトリからdbs/encディレクトリに移動します。

        FILE_NAME_CONVERT = ('dbs', 'dbs/enc')
      • FILE_NAME_CONVERT句はパターンを認識します。次の例では、データ・ファイルusers_1.dbfおよびusers_2.dbfusers_enc1.dbfおよびusers_enc2.dbfに変換します。

        FILE_NAME_CONVERT = ('users', 'users_enc')
      • Oracle Data Guard環境では、FILE_NAME_CONVERT設定にスタンバイ・データベース・データ・ファイルの名前を含めます。

      • Oracle Managed Filesモードを使用している場合、新しいファイル名が内部的に割り当てられるため、このファイル名はサイトのファイル命名標準に影響を与えません。Oracle Managed Files以外のモードを使用している場合にFILE_NAME_CONVERT句を省略すると、Oracle Databaseは内部的に補助ファイル名を割り当て、後で元の名前に戻します。これにより、暗号化プロセスは暗号化するファイルに元々付けられている名前を使用できます。名前変更操作では、ファイルの別のコピーが実質的に作成されるため、FILE_NAME_CONVERT句を明示的に含めた場合よりも時間がかかります。パフォーマンスを向上させるには、FILE_NAME_CONVERT句を含めてください。

      • 動的ビューV$DATAFILEまたはV$DATAFILE_HEADERを問い合せると、表領域のデータ・ファイルを検索できます。

      デフォルトでは、データ・ファイルは$ORACLE_HOME/dbsディレクトリ内にあります。データ・ファイルがここにある場合には、パスを指定する必要はありません。

変換の完了後、V$ENCRYPTED_TABLESPACES動的ビューのSTATUS列を問い合せて、暗号化ステータスを確認できます。このビューのENCRYPTIONALG列には、使用されている暗号化アルゴリズムが示されます。変換プロセスが中断された場合、ALTER TABLESPACEFINISH句とともに実行してプロセスを再開できます。たとえば、プライマリ・データ・ファイルが変換され、スタンバイ・データ・ファイルは変換されなかった場合、スタンバイ・データ・ファイルのスタンバイ・データベースでALTER TABLESPACE ... FINISHを実行できます。

6.9.3 オンライン変換での既存の表領域のキー更新

オンラインの既存の表領域をキー更新するには、ALTER TABLESPACE SQL文のREKEY句を使用できます。

キー更新操作を実行する前に、次の点に注意してください。
  • TEMP表領域をキー更新することはできません。TEMP表領域に異なる暗号化アルゴリズムを割り当てる場合には、TEMPを削除して、正しい暗号化アルゴリズムで再作成します。

  • オンライン表領域のキー更新操作とマスター・キーの操作を同時に実行しないでください。いずれかの表領域が現在キー更新中かどうかを確認するには、次の問合せを発行して、暗号化された表領域のキー更新ステータスを確認します。

    SELECT TS#,ENCRYPTIONALG,STATUS FROM V$ENCRYPTED_TABLESPACES;

    REKEYINGというステータスは、対応する表領域がまだキー更新中であることを意味します。このステータスが適用される間は、マスター・キーをキー更新しないでください。

オンライン変換を使用して既存の表領域をキー更新するには:

  1. SYSDBA管理権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    SYSTEM表領域およびSYSAUX表領域で操作を実行するには、SYSDBA管理権限を持っている必要があります。それ以外の場合、SYSKM管理権限で接続します。
  2. 次の要件が満たされていることを確認してください。
    • COMPATIBLE初期化パラメータが12.2.0.0以降に設定されている。
    • データベースが開かれ、読取り-書込みモードになっている。
    • マスター暗号化キーが作成され開いている。
  3. V$ENCRYPTED_TABLESPACES動的ビューの列KEY_VERSIONおよびSTATUSを問い合せて、マスター暗号化キーで使用される暗号化アルゴリズムの現在のステータスを確認します。
  4. V$ENCRYPTED_TABLESPACES動的ビューに返されたステータスに基づいて、キー更新操作を実行します。
    • 表領域のキー・バージョン・ステータスがNORMALの場合、オンライン表領域のキー更新の新しいアルゴリズムを指定します。

      たとえば:

      ALTER TABLESPACE users ENCRYPTION USING 'AES192' REKEY FILE_NAME_CONVERT = ('users.dbf', 'users_enc.dbf');
    • キー・バージョン・ステータスが、ENCRYPTINGDECRYPTINGまたはREKEYINGの場合、FINISH句を使用します。

      たとえば:

      ALTER TABLESPACE users ENCRYPTION ONLINE FINISH REKEY FILE_NAME_CONVERT = ('users.dbf', 'users_enc.dbf');
  5. ORA-00241 処理不可: 制御ファイルがデータ・ディクショナリと整合していませんというエラーが表示された場合は、CDBルートを再起動してステップ4を再試行します。
変換プロセスが中断された場合、ALTER TABLESPACEFINISH句とともに実行してプロセスを再開できます。

6.9.4 オンライン変換によるSYSAUX表領域およびUNDO表領域のキー更新

SYSAUXおよびUNDOオンライン表領域をキー更新するには、ALTER TABLESPACE SQL文のREKEY句を使用できます。

  1. SYSDBA管理権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    SYSTEM表領域およびSYSAUX表領域で操作を実行するには、SYSDBA管理権限を持っている必要があります。それ以外の場合、SYSKM管理権限で接続します。
  2. 次の要件が満たされていることを確認してください。
    • COMPATIBLE初期化パラメータが12.2.0.0以降に設定されている。
    • データベースが開かれ、読取り-書込みモードになっている。
    • マスター暗号化キーが作成され開いている。
  3. _TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHMパラメータの設定方法に応じて、次のようにキー更新操作を実行します:
    • _TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHMがAES256に設定されている場合は、SYSAUXまたはUNDOALTER TABLESPACE文にREKEY句のみが必要です。たとえば:
      ALTER TABLESPACE SYSAUX ENCRYPTION REKEY;
    • _TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHMが設定されていない場合は、AES256アルゴリズムを手動で指定する必要があります。たとえば:
      ALTER TABLESPACE SYSAUX ENCRYPTION USING 'AES256' REKEY;

6.9.5 オンライン変換での既存の表領域の復号化

既存の表領域をオンライン変換で復号化するには、ALTER TABLESPACE SQL文をDECRYPT句とともに使用できます。

  1. SYSDBA管理権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    SYSTEM表領域およびSYSAUX表領域で操作を実行するには、SYSDBA管理権限を持っている必要があります。それ以外の場合、SYSKM管理権限で接続します。
  2. 次の要件が満たされていることを確認してください。
    • COMPATIBLE初期化パラメータが12.2.0.0以降に設定されている。
    • データベースが開かれ、読取り-書込みモードになっている。
    • マスター暗号化キーが作成され開いている。
    • 復号化を完了させるための十分な補助領域があること。
  3. ALTER TABLESPACE SQL文をDECRYPT句とともに実行します。

    たとえば:

    ALTER TABLESPACE users ENCRYPTION ONLINE DECRYPT FILE_NAME_CONVERT = ('users_enc.dbf', 'users.dbf');

    ここでは次のように指定します。

    • 復号化するファイルを指定するときには、それらが最初に暗号化された順と逆の順で入力します。つまり、先に暗号化されたファイルの名前(users_enc.dbf)、次にデータ・ファイル(users.dbf)を続けて入力します。

    • 復号化にアルゴリズム・キーを指定しないでください。

変換プロセスが中断された場合、ALTER TABLESPACEFINISH句とともに実行してプロセスを再開できます。

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 TABLEPSPACEENCRYPTION ONLINE FINISH ENCRYPT句を使用して暗号化を再開できます。

  1. SYSDBAまたはSYSKM管理権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    SYSTEM表領域およびSYSAUX表領域で操作を実行するには、SYSDBA管理権限を持っている必要があります。それ以外の場合、SYSKM管理権限で接続します。
  2. V$ENCRYPTED_TABLESPACESを問い合せて、表領域のSTATUS列を確認します。

    STATUS列が、ENCRYPTINGDECRYPTINGまたはREKEYINGを報告する場合、この手順に記載されているようにALTER TABLESPACE文をFINISH句を指定して再実行します。STATUSNORMALを報告する場合、ALTER TABLESPACEFINISH句を指定しないで再実行できます。

    V$DATAFILE_HEADERビューを問い合せると、列TS#およびTABLESPACE_NAMEに一致する表領域名を検索できます。

  3. 必要に応じて、次の追加のビューに問い合せて、オンライン変換が中断された表領域についての情報を検索します。
    • DBA_TABLESPACES表領域のSTATUSがオンラインであるかオフラインであるかを示しているかどうかを検索します。
    • V$ENCRYPTED_TABLESPACES表領域のSTATUSが、暗号化されているかどうか、および暗号化キーのKEY_VERSIONが何であるかを示しているかどうかを検索します。
    • V$DATAFILEおよびV$DATAFILE_HEADER表領域に関連付けられたデータ・ファイルを検索します。
  4. ALTER TABLESPACE文をFINISH句を使用して実行します。
    次に例を示します。
    • 暗号化操作の場合:
      ALTER TABLESPACE users ENCRYPTION ONLINE FINISH ENCRYPT FILE_NAME_CONVERT = ('users.dbf', 'users_enc.dbf');
    • 復号化操作の場合:
      ALTER TABLESPACE users ENCRYPTION ONLINE FINISH DECRYPT FILE_NAME_CONVERT = ('users_enc.dbf', 'users.dbf');

      ファイルが指定される順序に注意します。1つ目は暗号化されたファイルの名前で、次がデータ・ファイルの名前です。(暗号化操作では、データ・ファイルの名前が先に指定され、次に暗号化されたファイルの名前が続きます。)

    • キー更新操作の場合:
      ALTER TABLESPACE users ENCRYPTION ONLINE FINISH REKEY FILE_NAME_CONVERT = ('users.dbf', 'users_enc.dbf');
      ALTER TABLESPACE文でFINISH句を使用するときには、アルゴリズムを指定できません。
  5. 変換を確認するには、V$ENCRYPTED_TABLESPACESビューのSTATUS列を問い合せます。
    ステータスはNORMALである必要があります。Oracle Data Guard環境では、データベースのSTATUSNORMALではない場合、正常に変換しなかったプライマリまたはスタンバイ・データ・ファイルでALTER TABLESPACE ... FINISH文を実行します。

6.10 最新サポート済アルゴリズムへの表領域のアルゴリズムの移行

すでに暗号化された表領域を再暗号化すると、以前のアルゴリズム(3DES168など)を最新のサポート済アルゴリズムに移行できます。

  1. 前のアルゴリズムを使用している表領域を検索します。
    3DES168を使用している表領域を検索する例を次に示します:
    SELECT TSVIEW.CON_ID, TSVIEW.NAME AS TS_NAME, ETSVIEW.ENCRYPTIONALG 
    AS ENCRYPTION_ALG FROM V$TABLESPACE TSVIEW , V$ENCRYPTED_TABLESPACES ETSVIEW
    WHERE TSVIEW.TS# = ETSVIEW.TS# 
    AND ETSVIEW.ENCRYPTEDTS = 'YES' 
    AND ETSVIEW.ENCRYPTIONALG = '3DES168';

    次のような出力が表示されます。

    
    CON_ID  TS_NAME           ENCRYPTION_ALG
    ------  ----------------  ------------------------
         1  ENCRYPTED_TS_CDB  3DES168
  2. 出力にリストされている各表領域を再暗号化します。
    最新のサポート済アルゴリズム(AES256)を使用するようにENCRYPTED_TS_CDB表領域を移行する例を次に示します:
    ALTER TABLESPACE ENCRYPTED_TS_CDB ENCRYPTION REKEY;
  3. 再暗号化を確認するには:
    SELECT TSVIEW.CON_ID, TSVIEW.NAME AS TS_NAME, ETSVIEW.ENCRYPTIONALG 
    AS ENCRYPTION_ALG FROM V$TABLESPACE TSVIEW , V$ENCRYPTED_TABLESPACES ETSVIEW
    WHERE TSVIEW.TS# = ETSVIEW.TS# AND ETSVIEW.ENCRYPTEDTS = 'YES';
    
    CON_ID  TS_NAME           ENCRYPTION_ALG
    ------  ----------------  ------------------------
         1  ENCRYPTED_TS_CDB  AES256

6.11 DBCAを使用した暗号化データベースの作成

DBCAを使用して、単一インスタンスのマルチテナント環境とOracle Data Guard環境の両方で暗号化データベースを作成できます。

6.11.1 DBCAを使用した暗号化データベースの作成

DBCAを実行して暗号化されたデータベースを作成する前に、WALLET_ROOTディレクトリを作成する必要があります。

  1. 統合モードのPDBを使用してDBCAがデータベースを作成するホストにログインします。
    DBCAは分離モードでPDBを作成できません。
  2. WALLET_ROOTディレクトリを作成します。
    たとえば:
    mkdir -pvm700 /etc/ORACLE/KEYSTORES/finance

    次のステップでDBCAを実行すると、DBCAによってWALLET_ROOT/tdeサブディレクトリが作成され、ENCRYPT_NEW_TABLESPACESALWAYSに設定されます。

  3. dbca -createDatabaseコマンドを実行して、暗号化されたデータベースを作成し、適切なTDE関連パラメータを含めます。

    たとえば:

    -configureTDE TRUE 
        -tdeWalletRoot /etc/ORACLE/KEYSTORES/finance 
        -tdeWalletLoginType LOCAL_AUTO_LOGIN  
        -TdeWalletPassword tde_password 
        -encryptPDBTablespaces ALL
    次の値を省略すると、DBCAでは次のようにデフォルトが使用されます:
    • tdeAlgorithm: デフォルトはAES256です。
    • encryptTablespaces: USERS表領域のみがCDB$ROOTで暗号化されます。
    • encryptPDBTablespaces: SYSTEMSYSAUXおよびUSERS表領域は暗号化されます。TEMPおよびUNDO表領域は暗号化されないままです。ALL設定は、PDB内のすべての表領域を暗号化します。

    -initParameter TABLESPACE_ENCRYPTION = AUTO_ENABLEを追加すると、CDB$ROOTおよびPDB内のすべての表領域が暗号化されます。このディレクティブは、-encryptPDBTablespacesおよび-encryptTablespacesの設定と互換性がありません。

6.11.2 DBCAを使用した暗号化プライマリ・データベースからのOracle Data Guardスタンバイ・データベースの作成

DBCAを実行して暗号化されたデータベースをOracle Data Guard環境で作成する前に、ウォレットをプライマリ・データベースからスタンバイ・データベースにコピーしてから、WALLET_ROOTディレクトリを作成する必要があります。

  1. DBCAが暗号化されたプライマリ・データベースからスタンバイ・データベースを作成するサーバーにログインします。
    REDO_TRANSPORT_USER初期化パラメータが共通ユーザーに設定されている場合、DBCAは暗号化されたプライマリ・データベースからスタンバイ・データベースを作成できません。
  2. TDEウォレットをプライマリ・ホストからスタンバイ・ホストにコピーします。
    DBCAを実行する際、primaryDBTdeWalletパラメータを設定するときにこのウォレットの場所を指定します。
  3. WALLET_ROOTディレクトリを作成します。
    たとえば:
    mkdir -pvm700 /etc/ORACLE/KEYSTORES/finance

    次のステップでDBCAを実行すると、DBCAによってWALLET_ROOT/tdeサブディレクトリが作成され、ENCRYPT_NEW_TABLESPACESALWAYSに設定されます。

  4. dbca -createDuplicateDBコマンドを実行して、暗号化されたスタンバイ・データベースを作成し、適切なTDE関連パラメータを含めます。

    たとえば:

    dbca -silent -createDuplicateDB -createAsStandby
      -configureTDE TRUE 
        -tdeAlgorithm AES256
        -tdeWalletRoot /etc/ORACLE/KEYSTORES/finance
        -primaryDBTdeWallet /tmp 
        -tdeWalletLoginType LOCAL_AUTO_LOGIN
        -sourceTdeWalletPassword tde_password 
        -TdeWalletPassword tde_password

6.11.3 DBCAによる暗号化データベースの作成後のベスト・プラクティス

DBCAで暗号化されたスタンドアロン・データベースまたはOracle Data Guardのプライマリ・データベースとスタンバイ・データベースを作成した後、透過的データ暗号化(TDE)のベスト・プラクティスを実装できます。

  1. SQL*Plusコマンドラインのウォレット・パスワードをEXTERNAL STOREに置き換えることができるように、ウォレット・パスワードを別の(ローカル)自動オープン・ウォレットに追加します。
    これは、義務の分離と自動化に役立ちます。Oracle Data Guardでは、プライマリ・データベースとスタンバイ・データベースの両方でコマンドを実行する必要があります。
    $ mkdir -pvm700 WALLET_ROOT/tde_seps
    
    SQL> ADMINISTER KEY MANAGEMENT ADD SECRET 'wallet_password' 
    FOR CLIENT 'TDE_WALLET' TO [LOCAL] AUTO-LOGIN KEYSTORE 'wallet_root/tde_seps';
  2. PDBのTDEマスター・キーにタグを追加します。
    DBCAは、PDBのTDEマスター・キーを作成するときに、このキーにタグを追加しません。次のADMINISTER KEY MANAGEMENTコマンドは、タグをPDBに追加します。タグは、文字列pdb_name date time (IN UTC)で構成されます。日付と時間は、現在の時間ではなく、キーが最初にアクティブ化された時間から導出されます。このコマンドをプライマリPDBで実行します。
    SELECT ' ADMINISTER KEY MANAGEMENT 
    SET TAG '''||SYS_CONTEXT('USERENV', 'CON_NAME')||' '||TO_CHAR (SYS_EXTRACT_UTC (ACTIVATION_TIME), 
    'YYYY-MM-DD HH24:MI:SS"Z"')||''' FOR '''||KEY_ID||''' 
    FORCE KEYSTORE IDENTIFIED BY EXTERNAL STORE WITH BACKUP;' 
    AS "SET TAG COMMAND" FROM V$ENCRYPTION_KEYS;

    Oracle Data Guardの場合は、プライマリ・ウォレット(タグ付けされたPDBキーを含む)をスタンバイ側にコピーします。ローカルの自動ログイン・ウォレットを使用している場合は、スタンバイ・データベースでローカルの自動オープン・ウォレットを削除して再作成します。

  3. データ・ディクショナリを暗号化します。
    これはData Guardトランザクションであるため、自動的にスタンバイ・データベースに適用されます。SYSKM管理権限を持つユーザーとして、次のALTER DATABASE DICTIONARYコマンドを実行します:
    ALTER DATABASE DICTIONARY ENCRYPT CREDENTIALS CONTAINER = CURRENT;
  4. オプションで、暗号化されたPDBを単一のコマンドで分離できます。
    1. プライマリPDB内から:
      ADMINISTER KEY MANAGEMENT FORCE ISOLATE KEYSTORE IDENTIFIED BY "new_pdb_wallet_password" 
      FROM ROOT KEYSTORE FORCE KEYSTORE 
      IDENTIFIED BY EXTERNAL STORE WITH BACKUP;

      ルート・ウォレットのパスワードを認識することなくこのコマンドを実行でき、ルート管理者は新しい分離ウォレットのパスワードを認識しません。このコマンドは、次のアクションを実行します:

      • WALLET_ROOT/pdb_guid/tdeディレクトリを作成します
      • WALLET_ROOT/pdb_guid/tdeディレクトリにウォレットを作成します
      • PDBキーをルート・ウォレットからPDBウォレットに移動します
      • PDBのTDE_CONFIGURATIONパラメータをFILEに設定します

      次に、分離された(ローカル)自動オープン・ウォレットを作成します。プライマリPDB内から次を実行します:

      ADMINISTER KEY MANAGEMENT CREATE LOCAL AUTO_LOGIN KEYSTORE 
      FROM KEYSTORE IDENTIFIED BY "new_pdb_wallet_password";
    2. 分離されたPDB内から、ディレクトリ、およびSQL*Plusコマンドラインから分離されたウォレット・パスワードを非表示にできる別のローカル自動オープン・ウォレットを作成します。
      SELECT ' HOST MKDIR -PVM700 '||B.VALUE||'/'||A.GUID||'/TDE_SEPS' 
      AS "CREATE DIRECTORY FOR IDENTIFIED BY EXTERNAL STORE (IBES)" 
      FROM V$PDBS A, V$PARAMETER B WHERE B.NAME = 'WALLET_ROOT';
      
      SELECT 'ADMINISTER KEY MANAGEMENT ADD SECRET ''NEW-PDB-WALLET-PWD'' 
      FOR CLIENT ''TDE_WALLET'' TO LOCAL AUTO_LOGIN KEYSTORE '''||B.VALUE||'/'||A.GUID||'/TDE_SEPS''' 
      AS "CREATE ISOLATED WALLET FOR IBES" 
      FROM V$PDBS A, V$PARAMETER B WHERE B.NAME = 'WALLET_ROOT';

6.12 既存のデータベースの暗号化変換

オフラインおよびオンライン両方のデータベースを暗号化できます。

6.12.1 既存のデータベースの暗号化変換について

データベース全体の暗号化変換では、Oracle提供のSYSTEMSYSAUXUNDOおよび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管理の表領域には暗号化アルゴリズムを指定しません。

  1. SYSDBA管理権限を付与されたユーザーとして、統一モードのCDBルートまたは分離モードのPDBに接続します。
    SYSTEM表領域およびSYSAUX表領域で操作を実行するには、SYSDBA管理権限を持っている必要があります。それ以外の場合、SYSKM管理権限で接続します。
  2. データベースをマウントします。
    STARTUP MOUNT
  3. ADMINISTER KEY MANAGEMENTまたはSYSKM権限が付与されたユーザーとして、キーストアを開きます。
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY keystore_password;
  4. ALTER TABLESPACE SQL文を実行して、表領域SYSTEMSYSAUXおよびUNDOを暗号化します。他の表領域の暗号化と同時にSYSTEM表領域を暗号化しないでください。

    たとえば、表領域SYSTEMを暗号化するには、次のようにします。

    ALTER TABLESPACE SYSTEM ENCRYPTION OFFLINE ENCRYPT;
  5. CDBルートまたはPDBをオープンします。
    • CDBの場合、読取り/書込みモードでオープンするには、次のようにします。
      ALTER DATABASE OPEN READ WRITE;
    • PDBの場合:
      ALTER PLUGGABLE DATABASE pdb_name OPEN READ WRITE;
  6. ALTER TABLESPACE SQL文を実行して他のユーザー表領域を暗号化します。
    あるいは、次のステップに進んでデータベースを先に開いて、オフライン変換で既存のユーザー定義表領域を暗号化するステップを実行できます。
  7. CDBルートまたはPDBをオープンします。
    • CDBの場合:
      ALTER DATABASE OPEN;
    • PDBの場合:
      ALTER PLUGGABLE DATABASE pdb_name OPEN;
表領域の暗号化後、SYSTEMSYSAUXおよびUNDO表領域に異なる暗号化アルゴリズムを使用(TDEマスター暗号化キーを変更)する場合は、オンライン変換を使用する必要があります。サポートされている暗号化アルゴリズムは、AES128に加えて、AES192AES256、およびARIAGOSTなどのその他のアルゴリズムです。

ノート:

Oracle Database 23c以降では、GOSTおよびSEEDアルゴリズムのTransparent Data Encryption (TDE)復号化ライブラリは非推奨になり、GOSTおよびSEEDへの暗号化はサポートされなくなります。Oracle Database 23c以降、GOSTおよびSEEDアルゴリズムのTransparent Data Encryption (TDE)暗号化ライブラリはサポートされなくなり、削除されました。GOSTおよびSEED復号化ライブラリは非推奨です。どちらも、HP Itaniumプラットフォームでは削除されます。

GOST 28147-89はロシア政府によって非推奨とされ、SEEDは韓国政府によって非推奨とされました。韓国政府が承認したTDE暗号化が必要である場合は、かわりにARIAを使用します。GOST 28147-89を使用している場合は、サポートされている別のTDEアルゴリズムを使用して、復号化および暗号化する必要があります。GOST 28147-89およびSEEDの復号化アルゴリズムはOracle Database 23cに含まれていますが、非推奨であり、GOST暗号化アルゴリズムはOracle Database 23cでサポートが終了しました。TDE暗号化にGOSTまたはSEEDを使用している場合は、Oracle Database 23cにアップグレードする前に、別のアルゴリズムで復号化および暗号化することをお薦めします。ただし、HP Itaniumプラットフォームを除き、Oracle Database 23cではGOSTおよびSEED復号化ライブラリを使用できるため、アップグレード後に復号化することもできます。

6.12.3 オンライン変換での既存のデータベースの暗号化

既存のデータベースをオンライン変換で暗号化するときには、暗号化アルゴリズムを指定しません。

最初に暗号化を実行するときに暗号化アルゴリズムを指定する必要がない理由は、データベースの暗号化に使用する必要のある表領域がデータベース・キーで自動的に暗号化されるためです。アルゴリズムを変更する場合、最初の暗号化の後にALTER TABLESPACE ENCRYPTION REKEY SQL文を発行できます。
  1. オンライン変換で既存の表領域を暗号化するときに実行する、次のタスクを実行します。
    1. SYSDBA管理権限が付与されたユーザーとして接続します。
    2. COMPATIBLEパラメータが12.2.0.0以降に設定されていることを確認します。
    3. データベースが読取り-書込みモードで開いていることを確認します。
    4. 暗号化を完了させるための十分な補助領域があることを確認します。
    5. 暗号化する必要のある表領域をバックアップします。
    6. キーストアを開きます。
  2. ALTER TABLESPACE SQL文を実行して、表領域SYSTEMSYSAUXおよびUNDOを暗号化します。アルゴリズムは指定せず、表領域SYSTEMを他の表領域の暗号化と同時に暗号化しないでください。

    たとえば、表領域SYSTEMを暗号化するには、次のようにします。

    ALTER TABLESPACE SYSTEM ENCRYPTION ONLINE ENCRYPT 
    FILE_NAME_CONVERT=('system01.dbf','system01_enc.dbf');
  3. 一時表領域を作成します。
    1. 次のように、元のTEMP表領域と同じ特性を持つ新しい(暗号化された)TEMP表領域を作成します。
      SELECT ' CREATE TEMPORARY TABLESPACE '
      ||tablespace_name||'_ENC tempfile '''
      ||substr(file_name,1,length(file_name)-4)
      ||'_enc.dbf'' size '
      ||bytes||' ENCRYPTION USING ''AES256'' ENCRYPT;' 
      AS " Create new encrypted TEMP tablespace" 
      FROM DBA_TEMP_FILES; 

      または、DBMS_METADATA.GET_DDLを実行して元のパラメータを抽出することもできます。USING algorithm句を省略した場合、Oracle Databaseによってデフォルトのアルゴリズムが適用されます。

    2. コマンド(つまり、SELECT文の出力)を実行します。
    3. データベースのデフォルトの一時表領域を、暗号化された新しいTEMP表領域に変更します。
      ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_enc;
    4. 元のTEMP表領域を削除します。
      DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;

      オプションで、temp_encの名前をTEMPに変更できます。