Мы пробовали следующие шаги: http://msdn.microsoft.com/en-us/library/cc278098.aspx но продолжайте получать эту ошибку: Msg 15151, Level 16, State 1, Line 1 Не удается найти сертификат tdeCert, потому что он не существует или у вас нет разрешения.
Вам нужно позаботиться об использовании правильных баз данных:
use master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD= 'password';
go
CREATE CERTIFICATE tdeCert WITH SUBJECT = 'TDE Certificate';
go
BACKUP CERTIFICATE tdeCert TO FILE = 'C:\location'
WITH PRIVATE KEY ( FILE = 'C:\location2', ENCRYPTION BY PASSWORD = 'password');
go
use your_db
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE tdeCert
Обратите внимание use master
и use your_db
.
Это означает, что вы неправильно выполнили шаги. Убедитесь, что tdeCert существует в select * from master.sys.certificates
, поскольку сертификат создается на шаге 2: CREATE CERTIFICATE tdeCert WITH SUBJECT = ‘TDE Certificate’
и должен существовать. Вы либо пропустили шаг, либо создали сертификат не в той базе данных, либо допустили опечатку в имени сертификата (включая регистр на серверах с учетом регистра).
Прозрачное шифрование данных (TDE) шифрует базу данных с помощью ключа шифрования базы данных (DEK), который хранится в загрузочной записи базы данных. DEK, в свою очередь, защищен главным ключом базы данных, который, в свою очередь, защищен главным ключом службы.
Первый шаг включает создание главного ключа шифрования:
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Password';
GO
После создания главного ключа шифрования создайте сертификат, который будет использоваться для шифрования базы данных:
CREATE CERTIFICATE servercertificate WITH SUBJECT = 'DataCertificate';
После создания главного ключа и сертификата вы можете создать DEK для конкретной базы данных с помощью оператора CREATE DATABASE ENCRYPTION KEY:
USE DecryptTesting;
GO
CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE servercertificate;
GO
Вы получите предупреждение в окне результатов:
Предупреждение. Сертификат, используемый для шифрования ключа шифрования базы данных, не был зарезервирован. Вы должны немедленно создать резервную копию сертификата и закрытого ключа, связанного с сертификатом. Если сертификат когда-либо станет недоступен или вы должны восстановить или присоединить базу данных на другом сервере, у вас должны быть резервные копии как сертификата, так и закрытого ключа, иначе вы не сможете открыть базу данных.
При использовании TDE создайте резервную копию сертификата сервера в базе данных master. Вы можете использовать инструкцию BACKUP CERTIFICATE для создания резервной копии сертификата и закрытого ключа, которые необходимы для восстановления сертификата. Пароль секретного ключа не обязательно должен совпадать с паролем главного ключа базы данных:
BACKUP CERTIFICATE ServerCertificate TO FILE = 'ServerCertExport' WITH PRIVATE KEY ( FILE = 'PrivateKeyFile', ENCRYPTION BY PASSWORD = '<PrivateKeyPasswordHere>' );
Теперь вы можете зашифровать базу данных:
ALTER DATABASE DecryptTesting SET ENCRYPTION ON;