DBAtlas · データベース運用アトラス

TDEで表領域を暗号化(新規および既存、オンライン/オフライン)

Oracleセキュリティ

コマンド

-- Prerequisite: keystore OPEN and master key set (v$encryption_wallet.status = 'OPEN')

-- 1) New encrypted tablespace:
CREATE TABLESPACE customer_enc
  DATAFILE '+DATA' SIZE 1G AUTOEXTEND ON NEXT 256M MAXSIZE 20G
  ENCRYPTION USING 'AES256' ENCRYPT;

-- 2a) Encrypt an existing tablespace ONLINE (12.2+, needs extra space temporarily):
ALTER TABLESPACE customer_data ENCRYPTION ONLINE USING 'AES256' ENCRYPT;
-- If not OMF: ... ENCRYPT FILE_NAME_CONVERT = ('customer_data01.dbf', 'customer_data01_enc.dbf');

-- 2b) OFFLINE conversion (no extra space, tablespace unavailable meanwhile):
ALTER TABLESPACE customer_data OFFLINE NORMAL;
ALTER TABLESPACE customer_data ENCRYPTION OFFLINE ENCRYPT;
ALTER TABLESPACE customer_data ONLINE;

-- 3) Progress and status:
SELECT t.name AS tablespace_name, e.encryptionalg, e.status, e.con_id
FROM   v$encrypted_tablespaces e
  JOIN v$tablespace t ON t.ts# = e.ts# AND t.con_id = e.con_id;
SELECT tablespace_name, encrypted FROM dba_tablespaces ORDER BY tablespace_name;

概要

表領域暗号化はデータファイルに書き込まれるすべてのブロックを暗号化する。バッファキャッシュ内のデータは平文であるため、アプリケーションやSQLの変更は不要。オンライン変換はDMLを継続したままデータファイルの暗号化コピーを作成して切り替え、オフライン変換はブロックをその場で暗号化する。

使用する場面

機密データを保持するアプリケーション表領域の保存時暗号化、新しい暗号化表領域へのデータ移動、監査指摘の解消に。

注意

オンプレミスではAdvanced Securityオプション(有償)が必要。オンライン変換には暗号化対象のデータファイルと同じ追加領域が必要で、大量のI/OとREDOが発生する。Data Guardスタンバイも同じ処理を行う。オフライン変換はData Guardスタンバイで別途実行する必要がある。SYSTEM/SYSAUX/UNDOは12.2以降オンラインで暗号化できるが、特に注意が必要。暗号化表領域のバックアップはキーストアなしではリストアできない。

DBAtlas で開く →

関連項目