У меня проблема с шифрованием базы данных SQL Server ...
У меня есть ٍ Сервер A и Сервер B. База данных находится на сервере A, и я хочу переместить базу данных с сервера A и подключиться на сервере B.
Я хочу защитить свою базу данных, чтобы никто не мог копировать, кроме меня.Я говорю о файле .mdf
.
Я пытался зашифровать TDE-шифрование следующим образом:
use master
Go
create master key
ENCRYPTION BY PASSWORD ='password1';
go
USE master
GO
CREATE CERTIFICATE MasterCert
WITH SUBJECT = 'Cert used for TDE';
GO
use master
go
Backup certificate MasterCert
to file ='D:\Backup\MasterCert.cer'
with Private key (file='D:\Backup\MasterCert.pvk',
encryption by password ='password1')
go
USE Test_Database
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE MasterCert ;
ALTER DATABASE Test_Database
SET ENCRYPTION ON ;
GO
Когда я присоединяю базу данных на сервере B, я получаю эту ошибку:
Не удается найти сертификат сервера с отпечатком пальца '0x1EE7FBA0D5DEFE740BAADEE7A0635942F382FEBB'.(Microsoft SQL Server, ошибка: 33111)
Мне известна эта ошибка, поскольку не найден сертификат, используемый на сервере A при использовании шифрования TDE, и я попытался добавить этот же сертификат на сервер B, используяэтот код:
use master
Go
create master key
ENCRYPTION BY PASSWORD ='password1';
go
create CERTIFICATE MasterCert
from file ='D:\Backup\MasterCert.cer'
with Private key (file='D:\Backup\MasterCert.pvk',
encryption by password ='password1')
go
но я получаю сообщение об ошибке:
Сертификат, асимметричный ключ или файл закрытого ключа не существует или имеет недопустимый формат.
Какое решение?
Если кто-нибудь знает другой способ защитить мою базу данных - скажите, пожалуйста!