Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Oryginalny numer KB: 4470999
W tym artykule omówiono błąd występujący podczas próby przywrócenia kopii zapasowej Transparent Data Encryption (TDE), która jest wykonywana na serwerach korzystających ze starszych wersji łącznika programu SQL Server dla usługi Microsoft Azure Key Vault.
Symptomy
Podczas próby przywrócenia kopii zapasowej bazy danych z programu SQL Server, który używa łącznika programu SQL Server dla usługi Key Vault 1.0.4.0 lub starszej wersji do łącznika programu SQL Server Connector dla usługi Microsoft Azure Key Vault 1.0.5.0.
Załóżmy, że wdrażasz następujące wystąpienia programu Microsoft SQL Server:
Wystąpienie
sql1programu SQL Server ma wdrożony łącznik programu SQL Server dla usługi Key Vault 1.0.4.0.Wystąpienie
sql2programu SQL Server ma wdrożony łącznik programu SQL Server dla usługi Key Vault 1.0.5.0.Użyj następującego zapytania, aby wdrożyć klucz asymetryczny zarówno na wystąpieniach, jak
sql1isql2z tego samego źródła klucza asymetrycznego w usłudze Key Vault:CREATE ASYMMETRIC KEY TDE_KEY FROM PROVIDER AzureKeyVaultProvider WITH PROVIDER_KEY_NAME = 'key1', CREATION_DISPOSITION = OPEN_EXISTING
Jeśli przeglądasz wartość odcisków palca na obu serwerach, zauważysz, że długość odcisku palca różni się, mimo że są one tworzone na podstawie tego samego źródła. Odcisk palca w wersji 1.0.5.0 jest dłuższy niż wersja 1.0.4.0.
Przykład odcisku palca 1.0.4.0:
0x2C5677D76F76D77F80
Przykład odcisku palca 1.0.5.0:
0x373B314B78E8D59A0925494558FEF14B726216C5
Zmiana powoduje występowanie problemów podczas operacji tworzenia kopii zapasowych i przywracania.
Przykład:
Masz kopię zapasową bazy danych zaszyfrowaną za pomocą klucza asymetrycznego w usłudze Key Vault w wystąpieniu sql1 .
Wystąpienie sql2 ma utworzony klucz asymetryczny.
Jeśli spróbujesz przywrócić kopię zapasową w wystąpieniu sql2 , operacja zakończy się niepowodzeniem i zwróci komunikat o błędzie podobny do następującego komunikatu:
Msg 33111, poziom 16, stan 4, numer wiersza <>
Nie można odnaleźć klucza asymetrycznego serwera z odciskiem palca "0x2C5677D76F76D77F80".
Uwagi:
Zapytanie do pobrania odcisku palca każdego klucza jest następujące:
SELECT thumbprint, * FROM master.sys.asymmetric_keys
Zapytanie do pobrania odcisku palca każdej bazy danych TDE jest następujące:
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
Przyczyna
Wprowadzono aktualizację w wersji 1.0.5.0 łącznika programu SQL Server dla usługi Key Vault, która zmienia sposób obliczania odcisków palca przez program. W wersji 1.0.5.0 to obliczenie jest zgodne z logiką używaną przez aparat programu do obsługi następującego scenariusza migracji:
Z: lokalny program Microsoft SQL Server, który korzysta z rozszerzalnego zarządzania kluczami (EKM)
Do: Usługa Microsoft Azure SQL Database korzystająca z obsługi funkcji Bring Your Own Key (BYOK) dla funkcji Transparent Data Encryption (TDE)
Z powodu tej zmiany mogą wystąpić problemy podczas próby przywrócenia kopii zapasowych bazy danych z wersji 1.0.4.0 lub starszej.
Rozwiązanie
Skopiuj łącznik programu SQL Server dla usługi Key Vault w wersji 1.0.4.0 lub starszej
sql2do serwera wystąpień.Uruchom następujące zapytanie na
sql2serwerze, aby zmienićCRYPTOGRAPHIC PROVIDERwersję na 1.0.4.0:ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVaultProvider FROM FILE = 'FilePath\FileName\SQL Server Connector for Microsoft Azure Key Vault\1.0.4.0\Microsoft.AzureKeyVaultService.EKM.dll'Uruchom ponownie program SQL Server.
Utwórz nowy klucz asymetryczny przy użyciu
CRYPTOGRAPHIC PROVIDERwersji 1.0.4.0.CREATE ASYMMETRIC KEY TDE_KEY_1040 FROM PROVIDER AzureKeyVaultProvider WITH PROVIDER_KEY_NAME = 'key1', CREATION_DISPOSITION = OPEN_EXISTING
Istnienie obu kluczy asymetrycznych można potwierdzić przy użyciu następującego zapytania:
SELECT thumbprint,* FROM master.sys.asymmetric_keysDodaj poświadczenia do logowania mapowanego asymetrycznego klucza (TDE_Login w poniższym przykładzie) przy użyciu zapytania podobnego do następującego zapytania:
ALTER LOGIN [Contoso\DomainUser] DROP CREDENTIAL sysadmin_ekm_cred; ALTER LOGIN TDE_Login ADD CREDENTIAL sysadmin_ekm_cred;Teraz powinno być możliwe przywrócenie kopii zapasowej.
Uruchom następujące zapytanie,
sql2aby przywrócićCRYPTOGRAPHIC PROVIDERwersję 1.0.5.0:ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVaultProvider FROM FILE = 'FilePath\FileName\SQL Server Connector for Microsoft Azure Key Vault\1.0.5.0\Microsoft.AzureKeyVaultService.EKM.dll'Uruchom ponownie program SQL Server.
Aby użyć nowego odcisku palca, uruchom następujące zapytanie przy użyciu tego samego klucza asymetrycznego lub nowego klucza asymetrycznego wersji.
ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY <KeyName_1.0.5.0_version>