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以降オンラインで暗号化できるが、特に注意が必要。暗号化表領域のバックアップはキーストアなしではリストアできない。