Selamlar,
Bugün sizlere TDE(Transparent Data Encryption) kullanarak şifrelediğimiz bir veritabanın farklı bir sunucuya nasıl taşıyabileceğinizi göstereceğim. Bunu anlatmadan önce TDE’ye neden ihtiyaç duyarız ondan bahsedeyim. Eğer şifrelenecek alanlar çok fazlaysa ve istediğimiz şey veri tabanının şifreleme yaptığımız server haricinde çalıştırılamaması ise TDE(Transparent Data Encryption) tam ihtiyacımızı karşılamaktadır.
TDE kullanımını sağlayabilmek için bir takım key ve sertifikaya ihtiyacımız vardır. Konumuz gereği bu key ve sertifikaları nasıl taşıyabiliriz bunu inceliyor olacağız.
İlk olarak DatabaseMasterKey olup olmadığını kontrol etmemiz gerekiyor. Bu işlemi aşağıdaki kod bloğu ile kontrol edebiliriz.
use master; select name from sys.symmetric_keys where name like '%DatabaseMasterKey%'
Bir Database Master Key varsa, yukarıdaki kod Database Master Key adını döndürür. Database Master Key yoksa, aşağıdaki TSQL koduyla oluşturabilirsiniz.
USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD='MasterKeyIcınGucluParola'; GO
Bir TDE şifreli veritabanını başka bir sunucuya taşımak için, taşınmakta olan TDE etkin veritabanını şifrelemek için kullanılan sertifikanın bir yedeğine sahip olmanız gerekir. Sertifika yedeğini almak için aşağıdaki kod bloğunu kullanabiliriz.
USE master; GO BACKUP CERTIFICATE TDE_CERT_For_CaglarOzencData TO FILE = 'C:\temp\TDE_Cert_For_CaglarOzencData.cer' WITH PRIVATE KEY (file='C:\temp\TDE_CertKey.pvk', ENCRYPTION BY PASSWORD='MasterKeyIcınGucluParola');</pre> <pre>
Bu kod TDE_CERT_for_CaglarOzencData sertifikasını yedekler ve iki dosya oluşturur. İlk dosya olan TDE_Cert_For_CaglarOzencData .cer de sertifikanın yedeği İkinci dosya olan TDE_CertKey.pvk ise özel anahtarı içerir.
Kullanacağınız yeni sunucuya ise aşağıdaki kod ile sertifikayı geri yükleyebilirsiniz.
USE master; GO CREATE CERTIFICATE TDECert_Restore FROM FILE = 'C:\temp\TDE_Cert_For_CaglarOzencData .cer' WITH PRIVATE KEY ( FILE = N'C:\temp\TDE_CertKey.pvk', DECRYPTION BY PASSWORD = 'MasterKeyIcınGucluParola' ); GO