SQL Server Backup Encryption
  1. Anasayfa
  2. SQL Server

SQL Server Backup Encryption

1

Son dönemlerde ve günümüzde güvenlik ihlalleri sık sık yaşanıyor ve biz DBA’lar olarak hepimiz hassas veriye özen göstermeli ve doğru bir şekilde şifrelemeyi sağlamalıyız. Bu doğrultuda atılacak adımlardan biri de SQL Server Backup Encryption özelliğinin kullanılmasıdır. Bugün içerik olarak bu özelliğin kullanımını anlatıyor olacağım.

SQL 2014’ten itibaren SQL Server artık verilerimizi şifreli yedekleme özelliğine sahiptir. 2014’ten önce, yedekleri şifrelemenin tek yolu “Transparent Data Encryption (TDE) “ özelliğinin kullanımı idi ve bu özellik sadece Enterprise Edition da bulunmaktaydı.

Başlangıç olarak MASTER KEY yada Certificate ( yada asymmetric key) oluşturmanız gerekir. Sertifikanın bir son kullanma tarihi olduğunu fark edeceksiniz. Bu sürenin sona ermesi durumunda, backupları restore edebileceksiniz , ancak yeni bir sertifika oluşturuluncaya kadar yeni backup alamayacaksınız!. Ortamınıza bağlı olarak, sertifikalarınızı ve yenilemelerinizi yönetmenin rutin bir sürecine sahip olmanız gerekebilir.

Master Key Oluşturma işlemi

USE Master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘msHOWTO_ÇÖZÜM_SANATTIR_ÇAĞLAR_ÖZENÇ’;
GO

Sertifika oluşturma işlemi

USE Master;
GO
CREATE CERTIFICATE BackupCertificateSample
WITH SUBJECT = ‘Backup Certificate Sample’,
EXPIRY_DATE = ‘20200101’;
GO

Gerçekleştirdiğiniz işlemleri teyit etmek için ;

SELECT C.name,C.certificate_id,C.pvt_key_encryption_type_desc,C.subject,C.start_date,C.expiry_date FROM sys.certificates AS C where c.name =’BackupCertificateSample’


Resim-1

Tanımlamaları gerçekleştirdikten sonra şifrelenmiş yedekleme süreciniz hazır, Kullanabilmeniz için işlemi yaptığınız kullanıcının “Sertifika için VIEW DEFINITION iznine sahip olduğunuzdan emin olmalısınız, aksi taktirde hata alacaksınız. VIEW DEFINATION tanımlaması için ise aşağıdaki sorguyu kullanabilirsiniz.

Yetkilendirme işlemi

use [Master]
GO
GRANT VIEW DEFINITION ON CERTIFICATE::[BackupCertificateSample] TO CaglarOzenc
GO

Aşağıdaki örnek için DbaTools isimli bir veritabanımız var ve biz bu veritabanı için şifrelenmiş yedek alıyor olacağız. Bu yüzden Master Key ve Sertifikayı bu veritabanı için çalıştırmamız gerekiyor. Sonrasında GUI’den Backup alırken Media Options Sekmesinden aşağıdaki gibi bazı tanımlama bilgileri girmeliyiz.


Resim-2

Backup Options bölümünden de aşağıdaki gibi girişlerimizi yapıyoruz.


Resim-3

TSQL ile benzer işlemi gerçekleştirmek isterseniz aşağıdaki kodu kullanabilirsiniz.

BACKUP DATABASE [DbaTools] TO DISK = N’D:\DATA\BACKUP\DbaTools.bak’ WITH FORMAT, INIT,
MEDIADESCRIPTION = N’DbaTools Backup Encryption Sample’,
MEDIANAME = N’DbaTools Backup Encryption Sample’,
NAME = N’DbaTools-Full Database Backup’,
ENCRYPTION(ALGORITHM = AES_128,
SERVER CERTIFICATE = [BackupCertificateSample]), STATS = 10
GO


Resim-4

Yukarıda gördüğünüz gibi artık elinizde şifrelenmiş bir yedek mevcut ve bunu restore edebilmemiz gerekli bu işlem öncesinde MSDN’den konu hakkında bir bilgi paylaşacağım.

Create a backup of the encryption certificate and keys to a location other than your local machine where the instance is installed. To account for disaster recovery scenarios, consider storing a backup of the certificate or key to an off-site location. You cannot restore an encrypted backup without the certificate used to encrypt the backup.”

Özetle MSDN derki, oluşturduğunuz key ve sertifikalara gözünüz gibi bakın, aksi taktirde yedeğinizi geri yükleyemezsiniz!

Alacağınız hata aşağıdakine benzer bir hatadır.

Resim-5

Sertifika ve Key’in tanımlı olduğu bir sunucuda restore işlemi ;

USE [master]
RESTORE DATABASE [DbaTools_ENC] FROM  DISK = N'D:\DATA\BACKUP\DbaTools.bak' WITH  FILE = 1,  
MOVE N'DbaTools' TO N'D:\SQLSERVERDATA\DbaTools_ENC.mdf',  
MOVE N'DbaTools_log' TO N'D:\SQLSERVERDATA\DbaTools_ENC_log.ldf',  NOUNLOAD,  STATS = 5
GO


Resim-6

Tekrar ediyorum, eğer bu özelliği kullanmak istiyorsanız Sertifika ve key bilgilerinize sahip çıkmalısınız!

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar:

https://www.mshowto.org

TAGs:BACKUP, şifreli yedekleme, sql, SQL Server, SQL Server Backup Encryption, veritabanı yedeğinizi şifreleyin

Bu İçeriğe Tepkin Ne Oldu?
  • 1
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Milenyumdan beri ilginç bir merak duygusu ile başlayan bilgisayar ve teknoloji dünyası merakı sayesinde eğitim yaşantımı doğup büyüdüğüm Düzce'de geçirdim. Sonrasında Düzce'nin kendimi geliştirmek adına yeterli imkanlara sahip olmadığından İstanbul'a gelip Bilge Adam Eğitim Kurumlarından Yazılım ve Veritabanı eğitimi aldım. Eğitimimi tamamlarken çeşitli Windows ve Web uygulamaları geliştirdim.Sırası ile Sentez Yazılım, Nebim Yazılım, Ciceksepeti, Doğan Holding, Kariyer.Net, TurkNet gibi firmalarında Yönetici / Müdür pozisyonlarında farklı ünvanlarda ( Yazılım Geliştirici / Raporlama ve Veritabanı Yöneticisi gibi) görev aldım. Şimdilerde ise DMC Bilgi Teknolojileri firmasının Kurucu Ortaklığını ve Veritabanı Danışmalığı Hizmeti vermekteyim.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (1)

  1. Eline sağlık Çağlar hocam güzel bir makale olmuş.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir