Aracılığıyla paylaş


Güvenli kuşatmalarla Always Encrypted ile ilgili yaygın sorunları giderme

Şunlar için geçerlidir: Windows Azure SQL Veritabanı'nda SQL Server 2019 (15.x) ve sonraki sürümleri

Bu makalede , güvenli kuşatmalarla Always Encrypted kullanarak Transact-SQL (TSQL) deyimlerini çalıştırırken karşılaşabileceğiniz yaygın sorunları tanımlama ve çözme işlemleri açıklanmaktadır.

Güvenli kuşatmalar kullanarak sorguları çalıştırma hakkında bilgi için bkz. Güvenli kuşatmalar kullanarak Transact-SQL deyimlerini çalıştırma.

Veritabanı bağlantı hataları

Güvenli bir kapanım kullanarak deyimleri çalıştırmak için Always Encrypted'ı etkinleştirmeniz, güvenli kuşatmalar kullanarak deyim çalıştırma önkoşulları bölümünde açıklandığı gibi veritabanı bağlantısı için bir kanıtlama protokolü ve varsa bir kanıtlama URL'si belirtmeniz gerekir. Azure SQL Veritabanınız veya hedef SQL Server örneğiniz güvenli bölmeleri desteklemiyorsa veya yanlış yapılandırılmışsa ve bir kanıtlama protokolü belirtirseniz, bağlantınız başarısız olur.

Microsoft Azure Doğrulama kullanılırken doğrulama hataları

Uyarı

Bu bölüm yalnızca Intel SGX kuşatmalarına sahip Azure SQL Veritabanı için geçerlidir.

İstemci sürücüsü yürütme için Azure SQL mantıksal sunucusuna bir T-SQL deyimi göndermeden önce, sürücü Microsoft Azure Doğrulama'yı kullanarak aşağıdaki enclave doğrulama iş akışını tetikler.

  1. İstemci sürücüsü, veritabanı bağlantısında belirtilen kanıtlama URL'sini Azure SQL mantıksal sunucusuna geçirir.
  2. Azure SQL mantıksal sunucusu, kapsül, barındırma ortamı ve kapsül içinde çalışan kodla ilgili kanıtları toplar. Ardından sunucu, kanıtlama URL'sinde başvuruda bulunarak kanıtlama sağlayıcısına bir kanıtlama isteği gönderir.
  3. Kanıtlama sağlayıcısı, kanıtı yapılandırılan ilkeye karşı doğrular ve Azure SQL mantıksal sunucusuna bir kanıtlama belirteci gönderir. Kanıtlama sağlayıcısı kanıtlama belirtecini özel anahtarıyla imzalar.
  4. Azure SQL mantıksal sunucusu kanıtlama belirtecini istemci sürücüsüne gönderir.
  5. İstemci, ortak anahtarını almak için belirtilen kanıtlama URL'sindeki kanıtlama sağlayıcısıyla iletişim kurar ve kanıtlama belirtecindeki imzayı doğrular.

Yanlış yapılandırmalar nedeniyle yukarıdaki iş akışının çeşitli adımlarında hatalar oluşabilir. Yaygın kanıtlama hataları, bunların kök nedenleri ve önerilen sorun giderme adımları şunlardır:

  • Azure SQL mantıksal sunucunuz, kanıtlama URL'sinde belirtilen Azure Kanıtlama'daki kanıtlama sağlayıcısına (yukarıdaki iş akışının 2. adımı) bağlanamıyor. Olası nedenler şunlardır:
    • Kanıtlama URL'si yanlış veya eksik. Daha fazla bilgi için bkz. Kanıtlama ilkeniz için kanıtlama URL'sini belirleme.
    • Kanıtlama sağlayıcısı yanlışlıkla silindi.
    • Güvenlik duvarı kanıtlama sağlayıcısı için yapılandırıldı, ancak Microsoft hizmetlerine erişime izin vermiyor.
    • Aralıklı bir ağ hatası kanıtlama sağlayıcısının kullanılamaz duruma çıkmasına neden olur.
  • Azure SQL mantıksal sunucunuz kanıtlama sağlayıcısına kanıtlama istekleri gönderme yetkisine sahip değil. Kanıtlama sağlayıcınızın yöneticisinin veritabanı sunucusunu Kanıtlama Okuyucusu rolüne eklediğinden emin olun.
  • Kanıtlama ilkesi doğrulanamadı (yukarıdaki iş akışının 3. adımında).
    • Olası kök neden, yanlış bir kanıtlama politikasıdır. Microsoft tarafından önerilen ilkeyi kullandığınızdan emin olun. Daha fazla bilgi için bkz. Kanıtlama sağlayıcısını oluşturma ve yapılandırma.
    • İlke doğrulaması, sunucu tarafı güvenli alanını tehlikeye atan bir güvenlik ihlali sonucu da başarısız olabilir.
  • İstemci uygulamanız kanıtlama sağlayıcısına bağlanamıyor ve ortak imzalama anahtarını alamıyor (5. adımda). Olası nedenler şunlardır:
    • Uygulamanızla kanıtlama sağlayıcısı arasındaki güvenlik duvarlarının yapılandırılması bağlantıları engelleyebilir. Engellenen bağlantı sorunlarını gidermek için kanıtlama sağlayıcınızın OpenId uç noktasına bağlanabildiğinizi doğrulayın. Örneğin, OpenID uç noktasına bağlanıp bağlanamadığını görmek için uygulamanızı barındıran makineden bir web tarayıcısı kullanın. Daha fazla bilgi için bkz. Meta Veri Yapılandırması - Alma.

Konak Koruyucu Hizmeti kullanılırken kanıtlama hataları

Uyarı

Bu bölüm yalnızca SQL Server 2019 (15.x) ve üzeri için geçerlidir.

Bir istemci sürücüsü, yürütme için bir T-SQL ifadesini SQL Server'a göndermeden önce, sürücü Host Guardian Service (HGS) kullanarak aşağıdaki gizli alan kanıtlama iş akışını tetikler.

  1. İstemci sürücüsü kanıtlamayı başlatmak için SQL Server'ı çağırır.
  2. SQL Server, güvenli bölge, barındırma ortamı ve güvenli bölge içerisinde çalışan kod ile ilgili kanıtları toplar. SQL Server, SQL Server'ı barındıran makinenin kayıtlı olduğu HGS örneğinden bir sistem durumu sertifikası iste. Daha fazla bilgi için Bilgisayarı Ana Bilgisayar Koruma Hizmeti'ne kaydetme bölümüne bakın.
  3. HGS, kanıtı doğrular ve sistem durumu sertifikasını SQL Server'a gönderir. HGS, sağlık sertifikasını özel anahtarıyla imzalar.
  4. SQL Server sistem durumu sertifikasını istemci sürücüsüne gönderir.
  5. İstemci sürücüsü, HGS ortak anahtarını almak için veritabanı bağlantısı için belirtilen kanıtlama URL'sinde HGS ile iletişim kurar. İstemci sürücüsü, sağlık sertifikasındaki imzayı doğrular.

Yanlış yapılandırmalar nedeniyle yukarıdaki iş akışında çeşitli adımlarda hatalar oluşabilir. Bazı yaygın kanıtlama hataları, bunların kök nedenleri ve önerilen sorun giderme adımları şunlardır:

  • SQL Server, aralıklı bir ağ hatası nedeniyle HGS'ye (yukarıdaki iş akışının 2. adımı) bağlanamıyor. Bağlantı sorununu gidermek için, SQL Server bilgisayarının yöneticisi bilgisayarın HGS makinesine bağlanabildiğini doğrulamalıdır.
  • 3. adımdaki doğrulama başarısız oluyor. Doğrulama sorununu gidermek için:
    • SQL Server bilgisayar yöneticisi, SQL Server bilgisayarının istemci tarafındaki kanıtlama URL'sinde başvurulan örnekle aynı HGS örneğine kayıtlı olduğunu doğrulamak için istemci uygulama yöneticisiyle birlikte çalışmalıdır.
    • SQL Server bilgisayar yöneticisi, 5. Adım: Konağın başarıyla doğrulanabilir olduğunu onayla talimatlarına uyarak, SQL Server bilgisayarının başarılı bir şekilde doğrulama yapabildiğini onaylamalıdır.
  • İstemci uygulamanız HGS'ye bağlanamıyor ve ortak imzalama anahtarını alamıyor (5. adımda). Bunun olası nedeni:
    • Uygulamanızla kanıtlama sağlayıcısı arasındaki güvenlik duvarlarından birinin yapılandırması bağlantıları engelleyebilir. Uygulamanızı barındıran makinenin HGS makinesine bağlanabildiğini doğrulayın.

Yerinde şifreleme hataları

Bu bölümde, yerinde şifreleme için kullanırken ALTER TABLE/ALTER COLUMN karşılaşabileceğiniz yaygın hatalar listelenir (önceki bölümlerde açıklanan kanıtlama hatalarına ek olarak). Daha fazla bilgi için bkz. Güvenilir ortamlarla Always Encrypted kullanarak yerinde sütun şifrelemesini yapılandırma.

  • Verileri şifrelemek, şifresini çözmek veya yeniden şifrelemek için kullanmaya çalıştığınız sütun şifreleme anahtarı, kapanım özellikli bir anahtar değildir. Yerinde şifreleme önkoşulları hakkında daha fazla bilgi için bkz. Önkoşullar. Yerleşke özellikli anahtarları sağlama hakkında bilgi için bkz: Yerleşke özellikli anahtarları sağlama.
  • Always Encrypted ve enclave hesaplamalarını veritabanı bağlantısı için etkinleştirmediniz. Bkz. Güvenli ortamlar kullanarak ifadeleri çalıştırma önkoşulları.
  • Deyiminiz ALTER TABLE/ALTER COLUMN bir şifreleme işlemi tetikler ve sütun veri türünü değiştirir veya geçerli harmanlama kod sayfasından farklı bir kod sayfasıyla harmanlama ayarlar. Şifreleme işlemlerinin veri türü veya harmanlama sayfası değişiklikleriyle birleştirilmesine izin verilmez. Sorunu gidermek için ayrı deyimler kullanın; veri türünü veya harmanlama kodu sayfasını değiştirmek için bir deyim ve yerinde şifreleme için başka bir deyim.

Güvenli kuşatmalar kullanarak gizli DML sorguları çalıştırırken oluşan hatalar

Bu bölümde, güvenli kuşatmalar kullanarak gizli DML sorguları çalıştırdığınızda karşılaşabileceğiniz yaygın hatalar listelenir (önceki bölümlerde açıklanan kanıtlama hatalarına ek olarak).

Sonraki Adımlar

Ayrıca bakınız