TDE Şifreleme Anahtarını Başka Bir SQL Server Sunucusuna Taşıma

By | 6 April 2018

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

 

Share

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.