MSSQL Server Backup Encryption

  • SQL Server 2014 Standart | Enterprise Edition
  • SQL Server 2016 Standart | Enterprise Edition
  • SQL Server 2017 Standart | Enterprise Edition
  • SQL Server 2019 Standart | Enterprise Edition

SQL Server 2014 sürümünden itibaren MSSQL Server veritabanlarımızı (database) yedeklerken şifreleme (encryption) kullanmamıza olanak sağlıyor.

Şifrelemeyi kullanma sebebimiz; backup’larımızın bulunduğu klasöre erişim sağlamış bir saldırganın backup dosyamızı kopyalasa bile içindeki verilere erişememesini sağlamaktır.

Backup Encryption Nasıl Çalışır ?

A sunucusunda bir KEY (anahtar) oluşturulur.

Bu anahtar kullanılarak şifrelemeyi sağlayan bir CERTIFICATE (Sertifika) oluşturulur.

Veritabanımızın yedeği alınırken bu sertifika kullanılır ve böylece yedek alınırken şifreleme sağlanmış olur.

B sunucusunda RESTORE (geri yükleme) işlemi yapılırken bu sertifika yüklü olmak zorundadır. Eğer yüklü değil ise alınan BACKUP bu sunucuda işlenemez.

Sertifika Oluşturma ve Encrypted Backup Alma

KEY oluşturulur.

USE master
GO  
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'C0kg3L3_51frE'

CERTIFICATE Oluşturulur.

USE master
GO  
CREATE CERTIFICATE Sertifika_Ismi   --Kullanılacak sertifikanın ismi
WITH SUBJECT = 'Aciklama'	    --Description olarak düşünülebilir
,EXPIRY_DATE = '20301231'	    --Bu sertifika bu tarihe kadar geçerli eğer yazılmaz ise default 1 yıldır
GO

ENCRYPTED BACKUP Alınır

USE master
GO  
BACKUP DATABASE [DBADB] TO  DISK = N'\\sqlbackup\DBADB_FullBackup.bak'
WITH INIT,  NAME = 'DBADB-Full Database Backup', SKIP, COMPRESSION,  STATS = 5, CHECKSUM
,ENCRYPTION (ALGORITHM = AES_256,SERVER CERTIFICATE = Sertifika_Ismi) --şifreleme
GO

Encrypted Backup’ın Başka Bir Sunucuda Restore Edilmesi

Şifrelenmiş bir backupın başka bir SQL Server’da restore edilmesi için o SQL Server’a da şifreleme sertifikasının yüklenmesi gerekmektedir. Aksi halde SQL Server, backup’ın içini okuyamayacaktır.

Sertifikanın diğer server’da da aktif olması için önce yedeğinin alınması ve server’a yüklenmesi gerekmektedir.

Sertifikanın Yedeğinin Alınması

USE master
GO  
BACKUP CERTIFICATE Sertifika_Ismi TO FILE = 'E:\CER\Crypto.cer' --Asıl sertifika dosyası
WITH PRIVATE KEY (FILE = 'E:\CER\Crypto.pvk',                   --Sertifikayı şifrelemek için kullanılan anahtar
ENCRYPTION BY PASSWORD = 'Dba*_5iFr3')                          --Sertifikayı şifrelemek için kullanılan anahtarın şifresi
GO

Oluşturulan iki dosya diğer server’a kopyalanır.

Diğer Sunucuya Sertifikanın Yüklenmesi

USE master
GO  
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'C0kg3L3_%1frE'
GO
CREATE CERTIFICATE Sertifika_Ismi FROM FILE ='D:\CER\Crypto.cer' --Sertifikanın localde bulunduğu yer
WITH PRIVATE KEY(FILE='D:\CER\Crypto.pvk',                       --Sertifika anahtarının localde bulunduğu yer
DECRYPTION BY PASSWORD='Dba*_5iFr3')                             --Anahtarı çözmek için kullanılan şifre
GO

Bu adımdan sonra şifreli bir şekilde aldığımız backup’ı bu sunucuya restore edebiliriz.

Daha detaylı ilgilendirme için microsoftun sitesini inceleyebilirsiniz.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s