SSMS'de Always Encrypted Sihirbazı'nı kullanarak sütun şifrelemesini yapılandırma

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen Örneği

Always Encrypted Sihirbazı, seçili veritabanı sütunları için istenen Always Encrypted yapılandırmasını ayarlamanıza olanak tanıyan güçlü bir araçtır. Geçerli yapılandırmaya ve istenen hedef yapılandırmaya bağlı olarak, sihirbaz bir sütunu şifreleyebilir, şifresini çözebilir (şifrelemeyi kaldırabilir) veya yeniden şifreleyebilir (örneğin, yeni bir sütun şifreleme anahtarı veya sütun için yapılandırılmış geçerli türden farklı bir şifreleme türü kullanarak). Sihirbazın tek bir çalıştırmasında birden çok sütun yapılandırılabilir.

Sihirbaz, mevcut şifreleme anahtarlarıyla sütunları şifrelemenize, yeni bir sütun şifreleme anahtarı oluşturmanıza veya hem yeni bir sütun şifreleme anahtarı hem de yeni bir sütun ana anahtarı oluşturmanıza olanak tanır.

Sihirbazın değerlendirmesi, seçili veritabanındaki tabloları değerlendirmenize veya analiz etmek için belirli tabloları seçmenize olanak tanır. Şifreleme için uygun sütunları tanımlar ve veri türleri, kısıtlamaları ve diğer faktörler nedeniyle Always Encrypted ile uyumsuz olanları vurgular. Sihirbaz, her alan için belirli sütunların neden şifrelenememe nedenini açıklayan ayrıntılı bir kısıtlama listesi sağlar.

Veritabanınız güvenli bir kapanımla yapılandırıldığında, verileri veritabanından dışarı taşımadan şifreleme işlemlerini yerinde çalıştırabilirsiniz. Sihirbaz, şifrelenecek sütunun şema değişikliğini engelleyen tüm bağımlılıkları kaldırır. Veritabanı motoru içindeki güvenli bölgeyi kullanarak her sütun için yerinde şifreleme gerçekleştirir. Şifreleme tamamlandığında sihirbaz bağımlılıkları yeniden oluşturur. Güvenli kuşatmalarla Always Encrypted hakkında daha fazla bilgi için bkz. Güvenli kuşatmalarla Always Encrypted.

Veritabanınız güvenli bir kapanımla yapılandırılmadığında, sihirbaz güvenli bir kapanım etkinleştirmenize olanak tanır. Güvenli bir kapanım etkinleştirmemeyi seçtiğinizi veya kapanım özellikli anahtarlar kullanmadığınız varsayın. Bu durumda sihirbaz verileri veritabanından çıkarır ve SSMS işlemi içinde şifreleme işlemleri gerçekleştirir. Sihirbaz, veritabanında istenen şifreleme yapılandırmasına sahip yeni bir tablo (veya tablo) oluşturur, özgün tablolardaki tüm verileri yükler, istenen şifreleme işlemlerini gerçekleştirir, verileri yeni tablolara yükler ve sonra yeni tablolarla bir veya daha fazla özgün tabloyu değiştirir.

Bahşiş

Ortamınızda varsa güvenli kuşatmalarla Always Encrypted kullanarak yerinde şifreleme kullanmak, şifreleme işlemlerinin süresini ve güvenilirliğini önemli ölçüde azaltabilir.

Şifreleme işlemlerinin çalıştırılması uzun sürebilir. Bu süre boyunca veritabanınız işlem yazmak için kullanılamaz. PowerShell, daha büyük tablolarda şifreleme işlemleri için önerilen bir araçtır. Bkz. PowerShell ile Always Encrypted kullanarak sütun şifrelemeyi yapılandırma veya PowerShellile sütun şifrelemeyi yerinde yapılandırma .

İzinler

Sihirbazı kullanarak şifreleme işlemleri gerçekleştirmek için VIEW ANY COLUMN MASTER KEY DEFINITION ve VIEW ANY COLUMN ENCRYPTION KEY DEFINITION izinlerine sahip olmanız gerekir. Ayrıca sütun ana anahtarınızı oluşturmak, bunlara erişmek ve kullanmak için anahtar deposu izinlerine de ihtiyacınız vardır. Anahtar deposu izinleri hakkında ayrıntılı bilgi için Always Encryptediçin sütun ana anahtarları oluşturma ve depolama gidin veya anahtar deponuzla ilgili bir bölüm bulun.

Always Encrypted sihirbazını açın

Sihirbazı üç farklı düzeyde başlatabilirsiniz:

  • Veritabanı düzeyinde, farklı tablolardaki birden çok sütunu şifrelemek istiyorsanız.
  • Aynı tablodaki birden çok sütunu şifrelemek istiyorsanız, tablo düzeyinde.
  • Belirli bir sütunu şifrelemek istiyorsanız, sütun düzeyinde.
  1. SQL Server Management Studio'nun Nesne Gezgini bileşeniyle SQL Server'ınıza bağlanın.

  2. Şifrelemek için:

    • Veritabanındaki farklı tablolarda bulunan birden çok sütun, veritabanınıza sağ tıklayın, Görevler'in üzerine gelin ve Always Encrypted Sihirbazı'nı seçin.

    • Aynı tabloda birden çok sütun var, tabloya gidin, sağ tıklayın ve Always Encrypted Sihirbazı'nı seçin.

    • Tek bir sütuna gidin, sütuna sağ tıklayın ve Always Encrypted Sihirbazı'nı seçin.

Sütun Seçimi sayfası

Bu sayfada, şifrelemek, yeniden şifrelemek veya şifresini çözmek için sütunları seçer ve bunlar için hedef şifreleme yapılandırmasını tanımlarsınız.

Düz metin sütununu (şifrelenmemiş bir sütun) şifrelemek için bir şifreleme türü (Deterministic veya Randomized) ve sütun için bir şifreleme anahtarı seçin.

Şifreleme türünü değiştirmek veya zaten şifrelenmiş bir sütun için sütun şifreleme anahtarını döndürmek (değiştirmek) için istenen şifreleme türünü ve anahtarı seçin.

Sihirbazın yeni bir sütun şifreleme anahtarı kullanarak bir veya daha fazla sütunu şifrelemesini veya yeniden şifrelemesini istiyorsanız, adında (Yeni) içeren bir anahtar seçin. Sihirbaz anahtarı oluşturur.

Şu anda şifrelenmiş olan bir sütunun şifresini çözmek için şifreleme türü için düz metin seçin.

Bahşiş

Yerinde şifreleme kullanmak istiyorsanız ve var olan anahtarları kullanıyorsanız, (kapanım etkin)ek açıklamalı, kapanım özellikli anahtarları seçtiğinizden emin olun.

Sihirbaz, zamansal ve bellek içi tablolarda şifreleme işlemlerini desteklemez. Transact-SQL kullanarak boş zamansal veya bellek içi tablolar oluşturabilir ve uygulamanızı kullanarak veri ekleyebilirsiniz.

Sütun Değerlendirmesi sayfası

Seçilen tablo ve sütunlar, Always Encrypted veya güvenli bölgelerle Always Encrypted için uygun olup olmadıkları açısından değerlendirilir. Değerlendirme otomatik olarak başlar, bir durum çubuğu ile şu anda değerlendirilmekte olan tabloların ve sütunların bir listesini gösterir ve hangilerinin tamamlandığını, hangilerinin yapılacağını belirtir. Değerlendirme, bir tablo sütununun Always Encrypted veya güvenli ortamlarda Always Encrypted gereksinimlerinisınırlamalarına göre karşılayıp karşılamadığının kontrol edilip edilmediğini denetler.

Bir sütun gereksinimleri karşılamıyorsa değerlendirmede bu sütun için "Hata" durumu görüntülenir. İletiler bağlantısının seçilmesi, belirli bir sütunun neden şifrelenemediklerine ilişkin ayrıntılı bilgi edinmenizi sağlar.

Onay kutusunu işaretleyerek geçirilen değerlendirme sütunlarını şifreleyebilirsiniz. Sihirbaz, değerlendirmeyi geçirmeyen sütunları otomatik olarak atlar. Ayrıca, Rapor düğmesini seçerek sonuçları CSV'ye veya metin dosyasına aktarabilirsiniz.

Ana Anahtar Yapılandırma sayfası

Önceki sayfadaki herhangi bir sütun için otomatik olarak oluşturulan bir sütun şifreleme anahtarı seçtiyseniz, var olan bir sütun ana anahtarını seçmeniz veya bu sayfadaki sütun şifreleme anahtarını şifreleyen yeni bir sütun ana anahtarı yapılandırmanız gerekir.

Yeni bir sütun ana anahtarı yapılandırırken, Windows Sertifika Deposu'nda veya Azure Key Vault'ta var olan bir anahtarı seçebilir ve sihirbazın veritabanında anahtar için yalnızca bir meta veri nesnesi oluşturmasını sağlayabilir veya hem anahtarı hem de veritabanındaki anahtarı açıklayan meta veri nesnesini oluşturmayı seçebilirsiniz.

Yerinde şifreleme kullanmak için Yeni bir sütun ana anahtarı için kapanım hesaplamalarına izin ver'i seçin. Bu onay kutusunun seçilmesine yalnızca veritabanınız güvenli bir kapanımla yapılandırılmışsa izin verilir.

Windows Sertifika Deposu, Azure Key Vault veya diğer anahtar depolarında sütun ana anahtarlarını oluşturma ve depolama hakkında daha fazla bilgi için bkz. Always Encrypted için sütun ana anahtarları oluşturma ve depolama veya Güvenli kuşatmalarla Always Encrypted anahtarlarını yönetme.

Bahşiş

Sihirbaz yalnızca Windows Sertifika Deposu ve Azure Key Vault'ta anahtarlara göz atmanızı ve anahtarlar oluşturmanızı sağlar. Ayrıca yeni anahtarların adlarını ve bunları açıklayan veritabanı meta veri nesnelerini otomatik olarak oluşturur. Anahtarlarınızın nasıl sağlandığı üzerinde daha fazla denetime (ve sütun ana anahtarınızı içeren bir anahtar deposu için daha fazla seçenk) ihtiyacınız olduğunu varsayalım. Bu durumda, önce Yeni Sütun Ana Anahtarı ve Yeni Sütun Şifreleme Anahtarı iletişim kutularını kullanarak anahtarları oluşturabilir ve ardından sihirbazı çalıştırarak oluşturduğunuz anahtarları seçebilirsiniz. Yeni Sütun Anahtarı İletişim Kutusu ile Sütun Anahtarlarını Sağlama veya Enklav Destekli Anahtarları Sağlama ve Yeni Sütun Şifreleme Anahtarı İletişim Kutusu ile Sütun Şifreleme Anahtarlarını Sağlama.

In-Place Şifreleme Ayarları sayfası

Veritabanınızda güvenli bir kapanım yapılandırdıysanız ve kapanım özellikli anahtarlar kullanıyorsanız, bu sayfa yerinde şifreleme için gereken kapanım kanıtlama parametrelerini belirtmenize olanak tanır. Yerinde şifreleme kullanmak istemiyorsanız, uygun sütunlar için yerinde şifrelemeyi kullan seçimini kaldırarak istemci tarafı şifrelemeye devam etmek için devam edin. Sihirbazın yerinde şifreleme kullanabilmesi için bu onay kutusunu etkin bırakmanızı öneririz.

Kapanım kanıtlama hakkında daha fazla bilgi için bkz: Azure Kanıtlama kullanarak Always Encrypted için kanıtlamayı yapılandırma

Çalıştırma Ayarları sayfası

Sihirbaz, hedef şifreleme yapılandırmasını ayarlamak için iki yaklaşımı destekler: çevrimiçi ve çevrimdışı.

Çevrimdışı yaklaşımla, hedef tablolar ve hedef tablolarla ilgili tüm tablolar (örneğin, hedef tablonun yabancı anahtar ilişkileri olan tablolar) işlem süresi boyunca işlem yazamaz. Yabancı anahtar kısıtlamalarının semantiği (CHECK veya NOCHECK) çevrimdışı yaklaşım kullanılırken her zaman korunur.

Çevrimiçi yaklaşımla, verileri kopyalama, şifreleme, şifre çözme veya yeniden şifreleme işlemi artımlı olarak gerçekleştirilir. Uygulamalar, süresi Maksimum kapalı kalma süresi parametresiyle sınırlı olan son yineleme dışında, veri taşıma işlemi boyunca hedef tablolardan ve hedef tablolara veri okuyabilir ve yazabilir. Veriler kopyalanırken uygulamaların gerçekleştirebileceği değişiklikleri algılamak ve işlemek için sihirbaz, hedef veritabanında Değişiklik İzleme'yi etkinleştirir. Bu nedenle çevrimiçi yaklaşımın veritabanı tarafında çevrimdışı yaklaşımdan daha fazla kaynak kullanma olasılığı vardır. Özellikle veritabanına karşı yoğun yazma iş yükü çalışıyorsa, işlem çevrimiçi yaklaşımda daha fazla zaman alabilir. Çevrimiçi yaklaşım, her seferinde bir tabloyu şifrelemek için kullanılabilir ve tablonun mutlaka bir birincil anahtarı olmalıdır. Varsayılan olarak yabancı anahtar kısıtlamaları, uygulamalar üzerindeki etkiyi en aza indirmek için NOCHECK seçeneğiyle yeniden oluşturulur. Keep check foreign key constraints seçeneğini etkinleştirerek yabancı anahtar kısıtlamalarının semantiğini korumayı zorunlu kılabilirsiniz.

Çevrimdışı ve çevrimiçi yaklaşımlar arasında seçim yaparken aşağıdaki yönergeleri bulabilirsiniz:

Çevrimdışı yaklaşımı kullanın:

  • İşlemin süresini en aza indirmek için.
  • Aynı anda birden çok tablodaki sütunları şifrelemek/şifresini çözmek/yeniden şifrelemek için.
  • Hedef tabloda birincil anahtar yoksa.

Çevrimiçi yaklaşımı kullanın:

  • Veritabanının uygulamalarınızda kapalı kalma süresini/kullanılamazlığını en aza indirmek için.

Şifreleme sonrası

Parametre şifreleme bilgilerini yenilemek için tabloya erişen tüm toplu işlemler ve saklı yordamlar için plan önbelleğini temizleyin.

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;

Uyarı

Etkilenen sorgunun planını önbellekten kaldırmazsanız, şifrelemeden sonra sorgunun ilk yürütmesi başarısız olabilir.

Plan önbelleğini dikkatlice temizlemek için ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE veya DBCC FREEPROCCACHE kullanın, çünkü bu, geçici olarak sorgu performansında düşüşe neden olabilir. Önbelleği temizlemenin olumsuz etkisini en aza indirmek için, yalnızca etkilenen sorgular için planları seçmeli olarak kaldırabilirsiniz.

sys.parameters içinde kalıcı olan ve sütunları şifreleyerek geçersiz kılınmış olabilecek her modülün parametrelerinin (saklı yordam, işlev, görünüm, tetikleyici) meta verilerini güncelleştirmek için sp_refresh_parameter_encryption'yi çağırın.