Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Özgün KB numarası: 4470999
Bu makalede, Microsoft Azure Key Vault için SQL Server Bağlayıcısı'nın eski sürümlerini kullanan sunucularda yapılan bir Saydam Veri Şifrelemesi (TDE) yedeklemesini geri yüklemeye çalıştığınızda oluşan bir hata açıklanır.
Belirtiler
Key Vault 1.0.4.0 için SQL Server Bağlayıcısı'nı veya önceki bir sürümü kullanan SQL Server'dan 1.0.5.0 Microsoft Azure Key Vault için SQL Server Bağlayıcısı bir veritabanı yedeklemesini geri yüklemeye çalıştığınızda sorunlarla karşılaşırsınız.
Aşağıdaki Microsoft SQL Server örneklerini dağıttığınızı varsayalım:
SQL Server örneğinde
sql1Key Vault 1.0.4.0 için SQL Server Bağlayıcısı dağıtıldı.SQL Server örneğinde
sql2Key Vault 1.0.5.0 için SQL Server Bağlayıcısı dağıtılmıştır.Key Vault'ta aynı asimetrik anahtar kaynağından hem hem de
sql1sql2örneklere asimetrik anahtar dağıtmak için aşağıdaki sorguyu kullanın:CREATE ASYMMETRIC KEY TDE_KEY FROM PROVIDER AzureKeyVaultProvider WITH PROVIDER_KEY_NAME = 'key1', CREATION_DISPOSITION = OPEN_EXISTING
Her iki sunucudaki parmak izlerinin değerini gözden geçirirseniz parmak izi uzunluklarının aynı kaynaktan oluşturulmuş olsa da farklı olduğunu fark edeceksiniz. Sürüm 1.0.5.0 parmak izi 1.0.4.0 sürümünden daha uzundur.
1.0.4.0 parmak izi örneği:
0x2C5677D76F76D77F80
1.0.5.0 parmak izi örneği:
0x373B314B78E8D59A0925494558FEF14B726216C5
Değişiklik, yedekleme ve geri yükleme işlemleri sırasında sorunların oluşmasına neden olur.
Örnek:
Örnekte Key Vault'taki asimetrik anahtarla şifrelenmiş bir veritabanı yedeğiniz sql1 var.
Örnekte sql2 asimetrik bir anahtar oluşturulmuştur.
Örnekteki yedeklemeyi sql2 geri yüklemeye çalışırsanız işlem başarısız olur ve aşağıdaki iletiye benzer bir hata iletisi döndürür:
Msg 33111, Düzey 16, State 4, Line <LineNumber>
Parmak izi '0x2C5677D76F76D77F80' olan sunucu asimetrik anahtarı bulunamıyor.
Notlar:
Her anahtarın parmak izini almak için sorgu aşağıdaki gibidir:
SELECT thumbprint, * FROM master.sys.asymmetric_keys
Her TDE veritabanının parmak izini almak için sorgu aşağıdaki gibidir:
SELECT DatabaseName(ddek.database_id) AS DatabaseName, ak.name
AS [Asymmetric key Name], ak.thumbprint FROM
sys.dm_database_encryption_keys ddek INNER JOIN
master.sys.asymmetric_keys ak ON
ak.thumbprint = ddek.encryptor_thumbprint
Neden
Key Vault için SQL Server Bağlayıcısı'nın 1.0.5.0 sürümünde programın parmak izlerini hesaplama biçimini değiştiren bir güncelleştirme kullanıma sunuldu. Sürüm 1.0.5.0'da bu hesaplama, aşağıdaki geçiş senaryolarını desteklemek için program altyapısı tarafından kullanılan mantıkla eşleşir:
Kimden: Genişletilebilir Anahtar Yönetimi (EKM) kullanan şirket içi Microsoft SQL Server
To: Saydam Veri Şifrelemesi (TDE) için Kendi Anahtarını Getir (KAG) desteğini kullanan Microsoft Azure SQL Veritabanı
Bu değişiklik nedeniyle, veritabanı yedeklerini 1.0.4.0 veya önceki bir sürümden geri yüklemeye çalıştığınızda sorunlarla karşılaşabilirsiniz.
Çözüm
Key Vault 1.0.4.0 veya önceki bir sürümü için SQL Server Bağlayıcısı'nı örnek sunucuya
sql2kopyalayın.1.0.4.0 sürümünü değiştirmek
CRYPTOGRAPHIC PROVIDERiçin sunucuda aşağıdaki sorguyusql2çalıştırın:ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVaultProvider FROM FILE = 'FilePath\FileName\SQL Server Connector for Microsoft Azure Key Vault\1.0.4.0\Microsoft.AzureKeyVaultService.EKM.dll'SQL Server'i yeniden başlatın.
1.0.4.0 kullanarak
CRYPTOGRAPHIC PROVIDERyeni bir asimetrik anahtar oluşturun.CREATE ASYMMETRIC KEY TDE_KEY_1040 FROM PROVIDER AzureKeyVaultProvider WITH PROVIDER_KEY_NAME = 'key1', CREATION_DISPOSITION = OPEN_EXISTING
Aşağıdaki sorguyu kullanarak her iki asimetrik anahtarın da varlığını onaylayabilirsiniz:
SELECT thumbprint,* FROM master.sys.asymmetric_keysAşağıdaki sorguya benzer bir sorgu kullanarak asimetrik anahtar eşlenmiş oturum açma bilgilerine (aşağıdaki örnekte TDE_Login) kimlik bilgileri ekleyin:
ALTER LOGIN [Contoso\DomainUser] DROP CREDENTIAL sysadmin_ekm_cred; ALTER LOGIN TDE_Login ADD CREDENTIAL sysadmin_ekm_cred;Artık yedeklemeyi geri yükleyebilmeniz gerekir.
1.0.5.0 sürümüne
CRYPTOGRAPHIC PROVIDERgeri dönmek için aşağıdaki sorguyu çalıştırınsql2:ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVaultProvider FROM FILE = 'FilePath\FileName\SQL Server Connector for Microsoft Azure Key Vault\1.0.5.0\Microsoft.AzureKeyVaultService.EKM.dll'SQL Server'i yeniden başlatın.
Yeni parmak izini kullanmak için aynı asimetrik anahtarı veya yeni sürüm asimetrik anahtarını kullanarak aşağıdaki sorguyu çalıştırın.
ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY <KeyName_1.0.5.0_version>