SQL Server 2008’de şifreleme için hangi yöntemi kullanmalı? | Veri Yönetimi ve İş Zekası
← SQL Server 2008’de uzak dosya paylaşımına audit
SSIS paketleriniz BIDS’te çalışırken, SQL Server Agent Job’ında çalışmıyorsa… →
SQL Server 2008’de şifrleme için kullanabileceğiniz iki ana yöntem var:
– TDE: Transparent Data Encryption. Tüm veritabanını uygulamalarda değişikliğe gerek kalmadan şifrelemek.
– Column-Level Encrytion: Kolon bazında kendi şifrelemenizi yapmak.
Bunlar arasında çeşitli durumlarda farklı tercihlerde bulunmak mümkün. TDE’nin en büyük avantajı, programlama işi değil yönetsel bir iş olması. Kurulması ve kullanılması herhangi bir veritabanı yöneticisinin rahatlıkla öğrenebileceği seviyede. Uygulamaya da hızla almak mümkün. Ama herşeyi şifrelemiş oluyorsunuz.
Kolon seviyesinde şifreleme kullanma durumunda ise herşeyin çok daha fazla detayına girebiliyorsunuz, ama çok ciddi programlama yükü çıkıyor ortaya.
Bazı senaryoları düşünecek olursak:
– Veritabanının sadece küçük bir kısmının şifrelenmesi gerekiyorsa ve bu şifrelenecek kısımlar sorgularda yoğun olarak geçmiyorsa, kolon seviyesinde şifrelemeyi tercih etmeniz biraz daha yüksek ihtimal. Kolon seviyesinde şifrelemenin en önemli dezavantajlarından birisi, indeksleri pratik olarak anlamsız kılması ve o kolonla ilgili sorguların hep tüm tablonun (ya da indeksin) taranmasına yol açıyor olması. Şifreli olması gereken kolonlarınız az sayıda ve sık sorgulanmayan kolonlarsa bu sıkıntı sizin için önemini kaybediyor. Ayrıca az miktarda verinin şifrelenmesi gereken durumda tüm veritabanını TDE yoluyla şifrelemek performansa gereksiz bir etki yapabilir.
– Şifrelenmiş kolonlarda yoğun arama yapmanız gerekiyorsa TDE’ye yönelme olasılığınız artar. Çünkü TDE uygulanmış veritabanlarında indeksler eskisi gibi kullanılmaya devam edebilir.
– Yasal, yönetmelik ya da sözleşme gereği olan durumlar: Bu tür durumlarda genelde pek şansınız yoktur. Düzenleme hangisini zorunlu kılıyorsa, o tarzda şifrelemeye gitmek zorundasınız. Ama çoğunlukla bu tür zorunluluklar sözel ifadeler olacaktır. Onları doğru yorumlayıp yorumlamadığınızdan emin olun.
– Kod tabanını değiştirme şansınız hiç olmayan uygulamaları desteklemek zorundaysanız, şifreleme için yalnız TDE’yi düşünebilirsiniz. Çünkü kolon bazlı şifreleme için uygulamalarda değişiklikler yapmanız gerekecektir.
Tüm bunların yanısıra son bir ek bilgi: TDE geçici bilgilerin tempdb’den kırılmaması için tempdb’yi de şifreler. Bu durumda birden fazla veritabanınız bulunan bir SQL Server’da, tempdb şifrelendiği için normalde TDE kullanmayan veritabanlarınız da TDE’nin etkisini hissedebilir. Böyle bir sıkıntı yaşarsanız, TDE’li veritabanlarınızı farklı bir SQL Server instance’a almayı düşünebilirsiniz.