Зашифровать табличные пространства через 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;Что делает
Шифрование табличного пространства шифрует каждый блок, записываемый в datafile; в buffer cache данные хранятся в открытом виде, поэтому изменения приложения или SQL не нужны. Онлайн-преобразование создаёт зашифрованную копию datafile и переключается на неё, пока продолжается DML; офлайн-преобразование шифрует блоки на месте.
Когда использовать
Чтобы зашифровать при хранении табличные пространства приложений с чувствительными данными, перенести данные в новое зашифрованное табличное пространство или закрыть замечание аудита.
Внимание
On-premises требует опции Advanced Security (платная). Онлайн-преобразованию нужно дополнительное место, равное размеру шифруемых datafile, и оно создаёт высокую нагрузку I/O и redo; standby Data Guard выполняет ту же работу. Офлайн-преобразование на standby Data Guard нужно запускать отдельно. SYSTEM/SYSAUX/UNDO можно шифровать онлайн в 12.2+, но это требует особой осторожности. Бэкапы зашифрованных табличных пространств нельзя восстановить без keystore.
Связанные материалы
- Создать и открыть keystore TDE, задать мастер-ключ и сделать бэкап (19c+)
- Создать политику Unified Auditing, включить её с условием, просмотреть записи, удалить
- Добавить политику доступа на уровне строк через VPD (DBMS_RLS)
- Создать профиль с политикой паролей и назначить его пользователям
- Найти неиспользуемые привилегии с помощью privilege analysis