Ekinlikler
31 Mar 23 - 2 Nis 23
En büyük SQL, Fabric ve Power BI öğrenme etkinliği. 31 Mart – 2 Nisan. 400 ABD doları tasarruf etmek için FABINSIDER kodunu kullanın.
Bugün kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Şunlar için geçerlidir: SQL Server 2019 (15.x) ve üzeri - Yalnızca Windows
Azure SQL Veritabanı
Güvenli kuşatmalarla Always Encrypted, yerinde şifrelemeyi ve daha zengin gizli sorguları etkinleştirerek Always Encrypted gizli bilgi işlem özelliklerini genişletir. Güvenli kuşatmalarla Always Encrypted, SQL Server 2019 (15.x) ve sonraki sürümlerde ve Azure SQL Veritabanı'nda kullanılabilir.
2015'te ve SQL Server 2016'da (13.x) Azure SQL Veritabanı'nda kullanıma sunulan Always Encrypted, hassas verilerin gizliliğini kötü amaçlı yazılımlardan ve yüksek ayrıcalıklı yetkisiz kullanıcılarına karşı korur: Veritabanı Yöneticileri (DTA), bilgisayar yöneticileri, bulut yöneticileri veya sunucu örneklerine, donanımlara yasal erişimi olan ancak gerçek verilerin bir kısmına veya tümüne erişimi olmaması gereken diğer kişiler.
Bu makalede açıklanan geliştirmeler olmadan, Always Encrypted, verileri istemci tarafında şifreleyerek korur ve hiçbir zaman verilerin veya ilgili şifreleme anahtarlarının Veritabanı Altyapısı içinde düz metin olarak görünmesine izin vermez. Sonuç olarak, veritabanının içindeki şifrelenmiş sütunlardaki işlevsellik ciddi ölçüde kısıtlanır. Veritabanı Altyapısı'nın şifrelenmiş verilerde gerçekleştirebileceği tek işlemler eşitlik karşılaştırmalarıdır (yalnızca belirleyici şifrelemeile kullanılabilir). Şifreleme işlemleri (ilk veri şifreleme veya anahtar döndürme) ve daha zengin sorgular (örneğin, desen eşleştirme) dahil olmak üzere diğer tüm işlemler veritabanında desteklenmez. Kullanıcıların bu işlemleri istemci tarafında gerçekleştirmek için verilerini veritabanının dışına taşıması gerekir.
Always Encrypted , sunucu tarafındaki güvenli bir alan içinde düz metin verilerinde bazı hesaplamaların yapılmasına izin vererek bu sınırlamaları giderir. Güvenli yalıtılmış alan, Veritabanı Motoru işlemi içindeki korumalı bir bellek bölgesidir. Güvenli alan, Veritabanı Altyapısı'nın geri kalanına ve barındırma makinesindeki diğer işlemlere opake bir kutu olarak görünür. Bir hata ayıklayıcıyla bile dışarıdan güvenli bölge içindeki verileri veya kodları görüntülemenin hiçbir yolu yoktur. Bu özellikler güvenli güvenilir yürütme ortamı, veri gizliliğinden ödün vermeden şifreleme anahtarlara ve hassas verilere düz metin olarak güvenli bir şekilde erişebilir.
Always Encrypted, aşağıdaki diyagramda gösterildiği gibi güvenli kuşatmalar kullanır:
Bir uygulama tarafından gönderilen bir Transact-SQL deyimi ayrıştırıldığında, Veritabanı Altyapısı deyiminin güvenli kapanım kullanımını gerektiren şifrelenmiş veriler üzerinde herhangi bir işlem içerip içermediğini belirler. Bu tür ifadeler için:
İstemci sürücüsü, işlemler için gereken sütun şifreleme anahtarlarını güvenli kapsüle (güvenli bir kanal üzerinden) gönderir ve ardından sorguyu yürütme için gönderir.
Deyimi işlerken, Veritabanı Altyapısı şifreli sütunlardaki şifreleme işlemlerini veya hesaplamaları güvenli kapanıma devreder. Gerekirse, güvenli bölge verilerin şifresini çözer ve düz metin üzerinde hesaplamalar gerçekleştirir.
İfade işleme sırasında, hem veriler hem de sütun şifreleme anahtarları, güvenli özel alan dışında Veritabanı Motoru'nda düz metin olarak açığa çıkarılmaz.
Always Encrypted'ı güvenli kuşatmalarla kullanmak için uygulamanın özelliği destekleyen bir istemci sürücüsü kullanması gerekir. Uygulamayı ve istemci sürücüsünü, kapanım hesaplamalarını ve kapanım kanıtlamasını etkinleştirecek şekilde yapılandırın (aşağıdaki Güvenli kapanım kanıtlama bölümüne bakın). Desteklenen istemci sürücülerinin listesi de dahil olmak üzere ayrıntılar için bkz. Always Encrypted kullanarak uygulama geliştirme.
Always Encrypted aşağıdaki kapanım teknolojilerini (veya kapanım türlerini) destekler:
Veritabanınız için kullanılabilen kapanım türü, veritabanını barındıran SQL ürününe (Azure SQL Veritabanı vs. SQL Server) ve (Azure SQL Veritabanı söz konusu olduğunda) veritabanınızın yapılandırmasına bağlıdır.
SQL Server 2019 (15.x) ve sonraki sürümlerinde Always Encrypted, VBS kuşatmalarını destekler. (Intel SGX kuşatmaları desteklenmez.)
Azure SQL Veritabanı'nda veritabanı, veritabanının çalışmak üzere yapılandırıldığı donanıma bağlı olarak Intel SGX kapanımını veya VBS kapanımını kullanabilir:
Not
VBS bölgeleri şu anda tüm Azure SQL Veritabanı bölgelerinde,: Jio India Central hariç, kullanılabilir.
Her kapanım türünün sağladığı düzey koruması hakkında önemli bilgiler için Güvenlik konuları bölümüne bakın.
Enklav doğrulaması, kötü amaçlı yöneticiler tarafından enklav kodu veya ortamıyla oynanan saldırıların tespit edilmesine yardımcı olan derinlemesine bir savunma mekanizmasıdır.
Hizmet bölgesi kanıtlama, istemci uygulamasının, bağlı olduğu veritabanı için güvenli alanda güven oluşturmasına ve ardından uygulamanın hassas verileri işlemek üzere bu alanı kullanmasına olanak tanır. Kanıtlama iş akışı, kapanımın gerçek bir VBS veya Intel SGX güvenli bölgesi olduğunu ve içinde çalışan kodun Always Encrypted için Microsoft'un imzaladığı gerçek kapanım kütüphanesi olduğunu doğrular. Kanıtlama sırasında hem uygulama içindeki istemci sürücüsü hem de Veritabanı Altyapısı, istemci tarafından belirtilen uç noktayı kullanarak bir dış kanıtlama hizmetiyle iletişim kurar.
Always Encrypted iki kanıtlama hizmetlerinden birini kullanabilir:
Uygulamanızın güvenli kuşatmalarıyla Always Encrypted'ı etkinleştirmek için, uygulamanızdaki istemci sürücüsünün yapılandırmasında bir kanıtlama protokolü ayarlamanız gerekir. Kanıtlama protokolü değeri, 1) istemci uygulamasının kanıtlama kullanıp kullanmayacağını belirler ve kullanıyorsa 2) kullanacağı kanıtlama hizmetinin türünü belirtir. Geçerli SQL ürünü ve kapsama alanı türü bileşimleri için desteklenen kanıtlama protokolleri aşağıdaki tabloda belirtilmiştir.
Barındırma ürünü | Enklav türü | Desteklenen kanıtlama protokolleri |
---|---|---|
SQL Server 2019 (15.x) ve üzeri | VBS kuşatmaları | HGS, Kanıtlama yok |
Azure SQL Veritabanı | SGX güvenli bölgeleri (DC serisi veritabanları) | Microsoft Azure Kanıtlama |
Azure SQL Veritabanı | VBS enklavları | Kanıtlama yok |
Dikkat edilmesi gereken birkaç önemli nokta:
Daha fazla bilgi için bkz:
Güvenli bölgelerle Always Encrypted, bölge destekli anahtarlar kavramını tanıtır.
master
anahtar meta veri nesnesinde belirtilen ENCLAVE_COMPUTATIONS
özelliğine sahip bir sütun master
anahtarı. Sütun master
anahtar meta veri nesnesi de meta veri özelliklerinin geçerli bir imzasını içermelidir. Daha fazla bilgi için bkz. CREATE COLUMN MASTER KEY (Transact-SQL) master
anahtarıyla şifrelenmiş bir sütun şifreleme anahtarı. Güvenli kapanım içindeki hesaplamalar için yalnızca kapanım özellikli sütun şifreleme anahtarları kullanılabilir.Daha fazla bilgi için bkz. Always Encrypted anahtarlarını güvenli bölgelerle yönetme.
Güvenlik alanı özellikli sütun, güvenlik alanı özellikli sütun şifreleme anahtarıyla şifrelenmiş bir veritabanı sütunudur.
Güvenli kuşatmalarla Always Encrypted'ın iki temel avantajı yerinde şifreleme ve zengin gizli sorgulardır.
Yerinde şifreleme, verileri veritabanının dışına taşımadan güvenli kapanım içindeki veritabanı sütunlarında şifreleme işlemlerine olanak tanır. Yerinde şifreleme, şifreleme işlemlerinin performansını ve güvenilirliğini artırır. ALTER TABLE (Transact-SQL) deyimini kullanarak yerinde şifreleme gerçekleştirebilirsiniz.
Yerinde desteklenen şifreleme işlemleri şunlardır:
Şifreleme işlemine dahil olan sütun şifreleme anahtarları enklav özellikli olduğu sürece hem belirleyici hem de rastgele şifreleme ile yerleşik şifrelemeye izin verilir.
Not
SQL Server 2022 (16.x), şifrelenmiş sütunlarda JOIN, GROUP BY ve ORDER BY işlemleriyle gizli sorgular için ek destek ekler.
Gizli sorgular, güvenli kapanım içinde gerçekleştirilen kapanım özellikli sütunlardaki işlemleri içeren DML sorgularıdır.
Güvenli kuşatmalar içinde desteklenen işlemler şunlardır:
Operasyon | Azure SQL Veritabanı | SQL Server 2022 (16.x) | SQL Server 2019 (15.x) |
---|---|---|---|
Karşılaştırma İşleçleri | Destekli | Destekleniyor | Destekli |
BETWEEN (Transact-SQL) | Destekli | Destekli | Destekli |
IN (Transact-SQL) | Destekli | Destekleniyor | Destekli |
LIKE (Transact-SQL) | Destekli | Destekli | Destekli |
DISTINCT | Destekli | Destekleniyor | Destekli |
,'e Katılıyor | Destekleniyor | Destekli | Yalnızca iç içe döngü birleşimleri desteklenir |
SELECT - ORDER BY Sözdizimi (Transact-SQL) | Destekli | Destekleniyor | Desteklenmiyor |
SELECT - GROUP BY - Transact-SQL | Destekli | Destekli | Desteklenmiyor |
Not
Güvenli kuşatmalar içindeki yukarıdaki işlemler rastgele şifreleme gerektirir. Belirleyici şifreleme desteklenmez. Eşitlik karşılaştırması, belirleyici şifreleme kullanan sütunlar için kullanılabilir durumda kalır.
Veritabanının uyumluluk düzeyi SQL Server 2022 (160) veya üzeri olarak ayarlanmalıdır.
Azure SQL Veritabanı'nda ve SQL Server 2022'de (16.x) bir karakter dizesi sütununda (char
, nchar
) kuşatmalar kullanan gizli sorgular, sütunun ikili kod noktası (_BIN2) harmanlama veya UTF-8 harmanlamakullanmasını gerektirir. SQL Server 2019'da (15.x), a_BIN2 harmanlama gerekir.
Daha fazla bilgi için bkz. Güvenli ortamlar kullanarak Transact-SQL deyimlerini çalıştırma.
Güvenli kapanım kullanarak gizli DML sorgularının daha hızlı çalışmasını sağlamak için rastgele şifreleme kullanarak enclave özellikli sütunlarda kümelenmemiş dizinler oluşturabilirsiniz.
Rastgele şifreleme kullanılarak şifrelenmiş bir sütundaki dizinin hassas verileri sızdırmadığından emin olmak için, dizin veri yapısındaki (B ağacı) anahtar değerleri şifrelenir ve düz metin değerlerine göre sıralanır. Düz metin değerine göre sıralamak, kapanım içindeki sorguları işlemek için de yararlıdır. Veritabanı Motoru'ndaki sorgu yürütücüsü, yalıtılmış alandaki hesaplamalar için şifrelenmiş bir sütunda dizin kullandığında, sütunda depolanan belirli değerleri bulmak için dizinde arama yapar. Her arama birden çok karşılaştırma içerebilir. Sorgu yürütücüsü, sütunda depolanan bir değerin ve karşılaştırılacak şifrelenmiş dizin anahtarının şifresini çözmek ve karşılaştırmayı düz metin üzerinde gerçekleştirmek için her karşılaştırmayı güvenli bölgeye devreder ve karşılaştırmanın sonucunu yürütücüye döndürür.
Rastgele şifreleme kullanan ve kapanım etkin olmayan sütunlarda dizin oluşturma işlemi desteklenmez.
Belirleyici şifreleme kullanan bir sütundaki dizin, sütunun kapanım etkin olup olmadığına bakılmaksızın şifre metnine (düz metin değil) göre sıralanır.
Daha fazla bilgi için bkz. Always Encrypted'i güvenli kapsayıcılarla kullanarak sütunlarda dizin oluşturma ve kullanma. Veritabanı Altyapısı'nda dizin oluşturmanın nasıl çalıştığı hakkında genel bilgi için Açıklanan Kümelenmiş ve Kümelenmemiş Dizinlermakalesine bakın.
SQL Server örneği başarısız olursa veritabanları, veri dosyalarının tamamlanmamış işlemlerden bazı değişiklikler içerebileceği bir durumda bırakılabilir. Örnek başlatıldığında, veritabanının bütünlüğünün korunduğundan emin olmak için işlem günlüğünde bulunan tüm eksik işlemlerin geri döndürülmesini içeren veritabanı kurtarmaadlı bir işlem çalıştırır. Tamamlanmamış bir işlem dizinde herhangi bir değişiklik yaptıysa, bu değişikliklerin de geri alınması gerekir. Örneğin, dizindeki bazı anahtar değerlerinin kaldırılması veya yeniden eklenmeleri gerekebilir.
Önemli
Microsoft, veritabanınız için Hızlandırılmış Veritabanı Kurtarma (ADR)'nin etkinleştirilmesini, rastgele şifreleme kullanılarak şifrelenmiş ve kapanım özellikli bir sütunda ilk dizini oluşturmadan önce kesinlikle önerir. ADR, Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği'nde varsayılan olarak etkindir. ADR, SQL Server 2019 (15.x) ve sonraki sürümlerde kullanılabilir ancak varsayılan olarak etkinleştirilmez.
geleneksel veritabanı kurtarma işlemi (ARIES kurtarma modelinden sonra) bir dizinde yapılan değişikliği geri almak için Veritabanı Motoru'nun, uygulamanın sütun şifreleme anahtarını enklava ulaştırmasını beklemesi gerekir, bu da uzun sürebilir. Hızlandırılmış veritabanı kurtarma (ADR), kapsam içindeki bellekte bir sütun şifreleme anahtarı kullanılamadığından ertelenmesi gereken geri alma işlemlerinin sayısını önemli ölçüde azaltır. Sonuç olarak, yeni bir işlemin engellenme olasılığını en aza indirerek veritabanı kullanılabilirliğini önemli ölçüde artırır. ADR etkinken, Veritabanı Altyapısı'nın eski veri sürümlerini temizlemeyi tamamlamak için yine de bir sütun şifreleme anahtarına ihtiyacı olabilir, ancak bunu veritabanının veya kullanıcı işlemlerinin kullanılabilirliğini etkilemeyen bir arka plan görevi olarak yapar. Hata günlüğünde eksik bir sütun şifreleme anahtarı nedeniyle temizleme işlemlerinin başarısız olduğunu belirten hata iletileri görebilirsiniz.
Aşağıdaki güvenlik konuları, güvenli kuşatmalarla Always Encrypted için geçerlidir.
master
anahtarlarını veya sütun şifreleme anahtarlarını DTA'larla paylaşmayın. DBA, kapanım içindeki sütun şifreleme anahtarlarının önbelleğini kullanarak anahtarlara doğrudan erişime gerek kalmadan şifrelenmiş sütunlardaki dizinleri yönetebilir.Always Encrypted'ı güvenli kuşatmalarla kullanarak bir veritabanı için yüksek kullanılabilirlik veya olağanüstü durum kurtarma çözümü yapılandırırken, tüm veritabanı çoğaltmalarının güvenli bir kapanım kullanabileceğine emin olun. Birincil replika için bir kapalı alan mevcutsa ancak ikincil replika için mevcut değilse, Always Encrypted işlevini güvenli kapalı alanlarla kullanmaya çalışan tüm ifadeler, yük devretmeden sonra başarısız olacaktır.
Güvenli kuşatmalarla Always Encrypted kullanarak bir veritabanını kopyaladığınızda veya geçirirken, hedef ortamın her zaman kuşatmalar desteklediğinden emin olun. Aksi takdirde, gizli bölgeler kullanan ifadeler kopyada veya taşınan veritabanında çalışmaz.
Aklınızda bulundurmanız gereken belirli noktalar şunlardır:
SQL Server
Azure SQL Veritabanı
Hem SQL Server'da hem de Azure SQL Veritabanı'nda, veritabanınızı bir bacpac dosyası kullanarak geçirirken, bacpac dosyasını oluşturmadan önce rastgele şifreleme kullanarak gizli alanlar özellikli sütunlar için tüm indeksleri kaldırdığınızdan emin olmanız gerekir.
Güvenli enclave'lerle Always Encrypted, Gizli bilgi işlem yetenekleri,enclave destekli sütunlar için bölümünde açıklandığı gibi, yerinde şifrelemeyi ve dizinlerle daha gelişmiş gizli sorguları destekleyerek Always Encrypted'ın bazı sınırlamalarını giderir.
Always Encrypted için Sınırlamaları'de listelenen diğer tüm sınırlamalar, güvenli veri bölgeleriyle Always Encrypted için de geçerlidir.
Aşağıdaki sınırlamalar, güvenli kuşatmalarla Always Encrypted'a özgüdür:
ALTER TABLE
/ALTER COLUMN
Transact-SQL deyiminde sütunun veri türünü değiştiremezsiniz. İki ayrı deyim kullanın.nchar[n]
ve nvarchar[n]
.char[n]
, varchar[n]
, binary[n]
, varbinary[n]
.master
anahtarları depolamak için desteklenen tek anahtar depoları Windows Sertifika Deposu ve Azure Key Vault'tur.ALTER TABLE
/
ALTER COLUMN
aracılığıyla yerinde bir şifreleme işlemi başlatmak için, SSMS veya Azure Data Studio'da bir sorgu penceresi kullanarak ifadeyi çalıştırmanız veya ifadeyi çalıştıracak kendi programınızı yazmanız gerekir. Şu anda SqlServer PowerShell modülündeki Set-SqlColumnEncryption
cmdlet'i ve SQL Server Management Studio'daki Always Encrypted sihirbazı yerinde şifrelemeyi desteklememektedir. İşlemler için kullanılan sütun şifreleme anahtarları kapanım etkin olsa bile şifreleme işlemleri için verileri veritabanından taşıyın.Ekinlikler
31 Mar 23 - 2 Nis 23
En büyük SQL, Fabric ve Power BI öğrenme etkinliği. 31 Mart – 2 Nisan. 400 ABD doları tasarruf etmek için FABINSIDER kodunu kullanın.
Bugün kaydolunEğitim
Sertifikasyon
Microsoft Sertifikalı: Azure Veritabanı Yöneticisi Uzmanlık - Certifications
Microsoft PaaS ilişkisel veritabanı tekliflerini kullanarak bulut, şirket içi ve karma ilişkisel veritabanları için SQL Server veritabanı altyapısını yönetme.
Belgeler
Güvenli kuşatmalarla Always Encrypted belgeleri - Azure SQL
SQL Server ve Azure SQL Veritabanı için güvenli kuşatma belgeleriyle Always Encrypted bulma