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;하는 일
테이블스페이스 암호화는 데이터 파일에 기록되는 모든 블록을 암호화한다. buffer cache에서는 데이터가 평문이므로 애플리케이션이나 SQL 변경이 필요 없다. 온라인 전환은 DML이 계속되는 동안 데이터 파일의 암호화된 사본을 만들어 전환하고, 오프라인 전환은 블록을 제자리에서 암호화한다.
사용 시점
민감 데이터가 있는 애플리케이션 테이블스페이스를 저장 상태에서 암호화하거나, 데이터를 새 암호화 테이블스페이스로 옮기거나, 감사 지적 사항을 해소할 때.
주의
온프레미스에서는 Advanced Security 옵션(유료)이 필요하다. 온라인 전환에는 암호화 대상 데이터 파일만큼의 추가 공간이 필요하며 I/O와 redo가 많이 발생한다. Data Guard standby도 같은 작업을 수행한다. 오프라인 전환은 Data Guard standby에서 별도로 실행해야 한다. SYSTEM/SYSAUX/UNDO는 12.2+에서 온라인 암호화가 가능하지만 각별한 주의가 필요하다. 암호화된 테이블스페이스의 백업은 keystore 없이 복원할 수 없다.