Чтобы шифровать столбцы, используя средства TDE, все, что вы должны сделать, это добавить к определениям столбцов простое предложение – ENCRYPT. А до этого вы должны решить, какой вы будете использовать тип шифрования и длину ключа. Для детального обсуждения этой проблемы обратитесь к моей статье "Шифруем свои ресурсы данных", упомянутой выше.
Предположим, что у вас в обычной схеме имеется таблица владельцев банковских счетов ACCOUNTS, определенная следующим образом:
ACC_NO NUMBER ACC_NAME VARCHAR2(30) SSN VARCHAR2(9)
В настоящее время все данные этой таблицы хранятся в виде обычного текста. Вы хотите преобразовать столбец SSN (Social Security Number, номер социального страхования), чтобы он хранился в зашифрованном виде. Для этого вы можете выполнить оператор:
alter table accounts modify (ssn encrypt);
Этот оператор делает две вещи:
Этот оператор не изменяет тип данных или размер столбца, и он также не создает никаких триггеров или представлений.
По умолчанию для шифрования используется алгоритм AES (Advanced Encryption Standard, усовершенствованный стандарт шифрования) с 192-битовым ключом. Вы можете также выбрать другой алгоритм, указывая в операторе соответствующее дополнительное предложение.
Например, чтобы использовать 128-битовое шифрование по алгоритму AES, вы можете выполнить оператор:
alter table accounts modify (ssn encrypt using 'AES128');
Вы можете использовать предложения AES128, AES192, AES256 или 3DES168 (168-bit Triple DES , трехкратное применение алгоритма DES (Data Encryption Standard, стандарт шифрования данных) с 168-битовым ключом).
После шифрования столбца вы увидите в описании таблицы следующее:
SQL> desc accounts
Name Null? Type ------------ ------------ -------------------------- ACC_NO NUMBER ACC_NAME VARCHAR2(30) SSN VARCHAR2(9) ENCRYPT
Обратите внимание на ключевое слово ENCRYPT, указанное после типа данных. Для поиска в базе данных зашифрованных столбцов можно воспользоваться представлением словаря данных DBA_ENCRYPTED_COLUMNS. (Средства TDE нельзя применять к таблицам схемы SYS.)