Daha sonra bu sertifika şu şekilde yedekten tekrar üretilebilir.
USE master
GO
CREATE CERTIFICATE tde_Cert
FROM FILE = 'C:\TDEBackups\tde_Cert.cer'
WITH PRIVATE KEY
(
FILE ='C:\TDEBackups\tde_Cert.pvk',
DECRYPTION BY PASSWORD='pass@word1'
)
NOT: Bu sertifika farklı bir serverda üretilecekse önce master databaseinde DMK(Database Master Key) oluşturulmalıdır.
Bundan sonra TDE_DB isimli veri tabanımızda Transparent Data Encrytion’ı şu şekilde aktif edebiliriz.
USE TDE_DB
Go
ALTER DATABASE TDE_DB
SET ENCRYPTION ON
Artık veri tabanımız yeni bir servera taşındığında okunamayacak, okunabilmesi için yedeğini aldığımız sertifikaya ihtiyaç duyacaktır.
Yapılan tüm işlemleri geri almak istersek şu sırada keyleri ve certificatei kaldırabiliriz.
Önce TDE’yi pasif hale getirelim.
USE TDE_DB
Go
ALTER DATABASE TDE_DB
SET ENCRYPTION OFF
Database Encrption Key’i kaldıralım.
DROP DATABASE ENCRYPTION KEY
Server Certificate’i kaldıralım.
USE master
GO
DROP CERTIFICATE tde_Cert
Master databaseindeki Database Master Key’i kaldıralım.
DROP MASTER KEY
Bu bölümde TDE yöntemini kullanarak veri tabanını tamamen şifrelemiş olduk. Şifreleme yaptığımız serverda sorgu sonuçlarını decrypt edilmiş olarak göreceğiz. Ancak veri tabanımız yeni bir servera taşındığında, şifrelemede kullandığımız Server Certificate olmadan kullanılamayacaktır.
mdf ve ldf dosyalarını Windows Azure Storage gibi dış bir lokasyonda güvende tutmak istediğimizde TDE şifreleme yöntemi tercih edilebilir. Yine benzer şekilde veri tabanı yedeklerinin farklı bir serverda açılıp kullanılamamasını istiyorsak bu yöntem işimizi görecektir.
SQL Server 2014 ile birlikte gelen Azure Storagelere yedek almak amaçlı geliştirilen URL Backup özelliği aynı zamanda yedeklerin şifrelenmesi opsiyonu olan Backup Encrytion’ı da sağlamaktadır. Bu sebeple Azure için sırf yedekleri koruma amaçlı TDE encrption yapılmasına ihtiyaç kalmamaktadır.
Şifreleme yapılan serverda verilerin encrypt edilmiş halini görmek ve yönetmek istiyorsak önceki yazılarımızda incelediğimiz Column-Level Encryption yöntemini kullanmalıyız.
Son olarak TDE ve Column-Level Encryption yöntemlerinden birine karar vermenizde Mustafa Acungil hocamın şu yazısı yardımcı olabilir.
Encryption konusunda değinmek istediğim genel ve temel yaklaşımlar şimdilik bu kadar.
Faydalı olması dileğiyle…
Abdullah KİSE