84
При шифровании используется ключ шифрования базы данных (DEK),
который хранится в загрузочной записи базы данных, где можно получить к
нему доступ при восстановлении. Ключ шифрования
базы данных является
симметричным ключом, защищенным сертификатом, который хранится в
базе данных
master
.
Это позволяет
разработчикам программного
обеспечения шифровать данные с помощью алгоритмов шифрования AES и
3DES, не меняя существующие приложения.
Настройка прозрачного шифрования данных
Чтобы включить TDE, необходимо выполнить следующие действия:
1.
Создание мастер-ключа базы данных в базе данных
master
.
2.
Создание сертификата сервера в базе данных
master
.
USE master
GO
CREATE
MASTER KEY ENCRYPTION
BY PASSWORD = 'Pa$$w0rd';
GO
CREATE CERTIFICATE Security_Certificate
WITH SUBJECT = '
DEK_Certificate';
GO
Как только вы создали сертификат сервера и связанный с ним закрытый
ключ, необходимо создать их резервную копию. Это минимизирует риск
потери данных. В случае если сертификат окажется недоступен или
понадобится восстановить базу данных на другом сервере либо
присоединить ее к другому серверу,
необходимо иметь копии
сертификата и закрытого ключа. Иначе будет невозможно открыть базу
данных. Сертификат следует сохранить, даже если функция прозрачного
шифрования в БД будет отключена, т.к. части журнала транзакций могут
по-прежнему оставаться защищенными, и для некоторых операций будет
требоваться сертификат (до выполнения полного резервного копирования
базы данных). Сертификат, который превысил свой срок хранения, все
еще может быть использован при прозрачном шифровании данных.
В следующем
примере кода показано, как создать резервную копию
сертификата сервера и его закрытого ключа:
BACKUP CERTIFICATE Security_Certificate
TO FILE = 'D:\backups\security_certificate.cer'
WITH PRIVATE KEY
(FILE = 'D:\backups\security_certificate.key' ,
ENCRYPTION BY PASSWORD = 'CertPa$$w0rd');
3.
Создание ключа шифрования базы данных в базе данных пользователя,
которую требуется зашифровать:
USE AdventureWorks
GO
CREATE
DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE Security_Certificate
GO
85
4.
Включить шифрование для пользовательской базы данных:
ALTER DATABASE AdventureWorks2012
SET ENCRYPTION ON;
Чтобы проверить, выполняется ли шифрование базы данных,
можно
выполнить запрос:
USE master;
SELECT name, is_encrypted FROM sys.databases ;
В столбце name выводится имя БД, а значение в столбце is_encrypted
указывает: зашифрована (1) или не зашифрована (0) база данных.
Do'stlaringiz bilan baham: