İlginizi Çekebilir
  1. Ana Sayfa
  2. SQL Server
  3. SQL Server Backup Encryption

SQL Server Backup Encryption

Resim2

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  Server 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 artık verilerimizi ö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 ;

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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar:

https://www.mshowto.org

TAGs:BACKUP, şifreli yedekleme, sql, SQL Server, ,

Yorum Yap

Yazar Hakkında

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.

Yorum Yap

Yorumlar (1)

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