Udostępnij za pośrednictwem


Rozwiązywanie problemów z utrzymaniem łącznika SQL Server &

Dotyczy:programu SQL Server

Dodatkowe informacje o łączniku programu SQL Server zostały podane w tym artykule. Aby uzyskać więcej informacji na temat łącznika programu SQL Server, zobacz Rozszerzone zarządzanie kluczami przy użyciu Azure Key Vault (SQL Server), Skonfiguruj zarządzanie kluczami rozszerzonymi SQL Server TDE przy użyciu Azure Key Vaulti Użyj łącznika SQL Server z funkcjami szyfrowania SQL.

Notatka

Chociaż identyfikator Entra firmy Microsoft to nowa nazwa usługi Azure Active Directory (Azure AD), aby zapobiec zakłócaniu działania istniejących środowisk, usługa Azure AD nadal pozostaje w niektórych zakodowanych na stałe elementach, takich jak pola interfejsu użytkownika, dostawcy połączeń, kody błędów i polecenia cmdlet. W tym artykule dwie nazwy są wymienne.

A. Instrukcje dotyczące konserwacji łącznika programu SQL Server

Rotacja kluczy

Usługa Azure Key Vault obsługuje rotację kluczy, czyli proces tworzenia nowego klucza i aktualizowania aplikacji w celu użycia nowego klucza. Rotacja kluczy to najlepsze rozwiązanie w zakresie zabezpieczeń, które pomaga chronić dane w przypadku naruszenia zabezpieczeń klucza. Łącznik programu SQL Server obsługuje rotację kluczy. Stare klucze nie powinny być usuwane, ponieważ może być wymagane przywrócenie bazy danych przy użyciu starego klucza. Aby obrócić klucz, wykonaj kroki opisane w Obrotu klucza asymetrycznego za pomocą nowego klucza AKV lub nowej wersji klucza AKV.

Uaktualnianie łącznika programu SQL Server

Wersje 1.0.0.440 i starsze zostały zastąpione i nie są już obsługiwane w środowiskach produkcyjnych. Wersje 1.0.1.0 i nowsze są obsługiwane w środowiskach produkcyjnych. Skorzystaj z poniższych instrukcji, aby uaktualnić program do najnowszej wersji dostępnej w Centrum pobierania Microsoft.

Aktualizacja

  1. Zatrzymaj usługę SQL Server przy użyciu programu SQL Server Configuration Manager.
  2. Odinstaluj starą wersję przy użyciu panelu sterowania >Programy>Programy i funkcje.
    1. Nazwa aplikacji: Łącznik programu SQL Server dla usługi Microsoft Azure Key Vault
    2. Wersja: 15.0.300.96 (lub starsza)
    3. Data pliku DLL: 30 stycznia 2018 r. (lub starsze)
  3. Zainstaluj (uaktualnij) nowy łącznik programu SQL Server dla usługi Microsoft Azure Key Vault.
    1. Wersja: 15.0.2000.440
    2. Data pliku DLL: 9 listopada 2024 r.
  4. Uruchom usługę SQL Server.
  5. Testowanie zaszyfrowanych baz danych jest dostępne.

Cofnięcie

  1. Zatrzymaj usługę SQL Server przy użyciu programu SQL Server Configuration Manager.

  2. Odinstaluj nową wersję przy użyciu panelu sterowania >Programy>Programy i funkcje.

    1. Nazwa aplikacji: Łącznik programu SQL Server dla usługi Microsoft Azure Key Vault
    2. Wersja: 15.0.2000.440
    3. Data pliku DLL: 9 listopada 2024 r.
  3. Zainstaluj starą wersję łącznika programu SQL Server dla usługi Microsoft Azure Key Vault.

    1. Wersja: 15.0.300.96
    2. Data pliku DLL: 30 stycznia 2018 r.
  4. Uruchom usługę SQL Server.

  5. Sprawdź, czy bazy danych korzystające z funkcji TDE są dostępne.

  6. Po zweryfikowaniu, czy aktualizacja działa, można usunąć stary folder Connector programu SQL Server (jeśli wybrano zmianę nazwy zamiast odinstalować w kroku 3).

Starsze wersje łącznika programu SQL Server

Linki szczegółowe do starszych wersji łącznika programu SQL Server

Stopniowe wdrażanie jednostki usługi programu SQL Server

Program SQL Server używa jednostek usługi utworzonych w usłudze Microsoft Entra ID (wcześniej usługi Azure Active Directory) jako poświadczeń w celu uzyskania dostępu do usługi Key Vault. Principal serwisu ma Identyfikator Klienta i Klucz Uwierzytelniania. Poświadczenie programu SQL Server jest konfigurowane z wykorzystaniem VaultName, identyfikatora klientai klucza uwierzytelniania. klucz uwierzytelniania jest ważny przez określony okres (jeden lub dwa lata). Przed wygaśnięciem okresu należy wygenerować nowy klucz w identyfikatorze Entra firmy Microsoft dla jednostki usługi. Następnie należy zmienić poświadczenia w programie SQL Server. Program Management Studio utrzymuje pamięć podręczną dla poświadczeń w bieżącej sesji, więc po zmianie poświadczeń należy ponownie uruchomić program Management Studio.

Obsługa tożsamości zarządzanej dla SQL Server na maszynach wirtualnych Azure

Począwszy od aktualizacji zbiorczej SQL Server 2022 (CU17), tożsamości zarządzane przez Microsoft Entra są obsługiwane dla rozszerzalnego zarządzania kluczami (EKM) z użyciem Azure Key Vault (AKV) i zarządzanych sprzętowych modułów zabezpieczeń (HSM) w programie SQL Server na maszynach wirtualnych platformy Azure (tylko system Windows). Aby uzyskać więcej informacji, zobacz obsługa tożsamości zarządzanej na potrzeby rozszerzalnego zarządzania kluczami za pomocą usługi Azure Key Vault. Aby używać tożsamości zarządzanych z łącznikiem programu SQL Server, wersja łącznika musi być w wersji 1.0.5.0 listopada 2024 r. lub nowszej. Pobierz najnowszą wersję z Centrum Pobierania Microsoft .

Tworzenie kopii zapasowej kluczy i odzyskiwanie

Magazyn kluczy powinien być regularnie kopiowany do backupu. Jeśli klucz asymetryczny w schowku zostanie utracony, można go przywrócić z kopii zapasowej. Klucz musi zostać przywrócony przy użyciu takiej samej nazwy jak poprzednio, co robi polecenie Przywróć program PowerShell (zobacz poniższe kroki).

Jeśli magazyn został utracony, utwórz ponownie magazyn i przywróć klucz asymetryczny do magazynu przy użyciu takiej samej nazwy jak poprzednio. Nazwa magazynu może być inna (lub taka sama jak poprzednio). Ustaw uprawnienia dostępu do nowego magazynu, aby jednostka usługi programu SQL Server miała dostęp wymagany w scenariuszach szyfrowania SQL Server, a następnie dostosuj poświadczenia SQL Server, aby odzwierciedliły nową nazwę magazynu.

Podsumowując, poniżej przedstawiono kroki:

  • Utwórz kopię zapasową klucza magazynu (za pomocą cmdlet Backup-AzureKeyVaultKey programu PowerShell).
  • W przypadku awarii skarbca, utwórz nowy skarbiec w tym samym regionie geograficznym. Użytkownik tworzący magazyn powinien znajdować się w tym samym katalogu domyślnym co główny użytkownik usługi ustawiony dla SQL Server.
  • Przywróć klucz do nowego magazynu przy użyciu polecenia cmdlet Restore-AzureKeyVaultKey programu PowerShell, które przywraca klucz pod tą samą nazwą jak wcześniej. Jeśli istnieje już klucz o tej samej nazwie, przywracanie zakończy się niepowodzeniem.
  • Przyznaj uprawnienia jednostce usługi programu SQL Server do korzystania z tego nowego magazynu.
  • Zmodyfikuj poświadczenie SQL Server używane przez mechanizm bazy danych, aby odzwierciedlało nową nazwę magazynu (w razie potrzeby).

Kluczowe kopie zapasowe można przywrócić w różnych regionach świadczenia usługi Azure, o ile pozostają w tym samym regionie geograficznym lub w chmurze krajowej: USA, Kanada, Japonia, Australia, Indie, APAC, Europa Brazylia, Chiny, Instytucje rządowe USA lub Niemcy.

B. Często zadawane pytania

W usłudze Azure Key Vault

Jak działają operacje kluczy w usłudze Azure Key Vault?

Klucz asymetryczny w magazynie kluczy służy do ochrony kluczy szyfrowania programu SQL Server. Tylko publiczna część klucza asymetrycznego kiedykolwiek opuszcza magazyn; część prywatna nigdy nie jest eksportowana przez magazyn. Wszystkie operacje kryptograficzne używające klucza asymetrycznego są wykonywane w usłudze Azure Key Vault i są chronione przez zabezpieczenia usługi.

Co to jest identyfikator URI klucza?

Każdy klucz w usłudze Azure Key Vault ma identyfikator URI (Uniform Resource Identifier), którego można użyć do odwołowania się do klucza w aplikacji. Użyj https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey formatu, aby pobrać bieżącą wersję, i użyj formatu https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87, aby uzyskać określoną wersję.

Konfigurowanie programu SQL Server

Do jakich punktów końcowych potrzebuje łącznik programu SQL Server?

Łącznik komunikuje się z dwoma punktami końcowymi, które muszą być dopuszczone. Jedynym portem wymaganym do komunikacji wychodzącej z tymi innymi usługami jest 443 dla protokołu HTTPS:

  • login.microsoftonline.com/*:443
  • *.vault.azure.net/*:443

Ponadto sprawdzenie listy odwołania certyfikatów może spowodować utworzenie ruchu HTTP na porcie 80.

Notatka

Użycie łącznika programu SQL Server dla usługi Azure Key Vault za zaporą lub serwerem proxy może mieć wpływ na wydajność, jeśli ruch jest opóźniony lub zablokowany. Zapoznaj się z Uzyskiwanie dostępu do usługi Azure Key Vault za zaporą, aby upewnić się, że obowiązują prawidłowe reguły.

Jak nawiązać połączenie z usługą Azure Key Vault za pośrednictwem serwera proxy HTTP(S)? Łącznik używa ustawień konfiguracji serwera proxy programu Internet Explorer. Te właściwości można kontrolować za pośrednictwem zasad grupowych lub za pośrednictwem rejestru, ale ważne jest, aby pamiętać, że nie są one ustawieniami całego systemu i muszą być skierowane do konta usługi obsługującego uruchomioną instancję SQL Server. Jeśli administrator bazy danych wyświetla lub edytuje ustawienia w programie Internet Explorer, wpłyną tylko na konto administratora bazy danych, a nie na silnik SQL Server. Logowanie się na serwerze interaktywnie przy użyciu konta usługi nie jest zalecane i jest blokowane w wielu bezpiecznych środowiskach. Zmiany w skonfigurowanych ustawieniach serwera proxy mogą wymagać ponownego uruchomienia instancji SQL Server, aby weszły w życie, ponieważ są buforowane, gdy łącznik po raz pierwszy próbuje połączyć się z Key Vault.

Które rozmiary kluczy w usłudze Azure Key Vault są obsługiwane przez łącznik programu SQL Server? Najnowsza kompilacja łącznika programu SQL Server obsługuje klucze usługi Azure Key Vault o rozmiarach 2048 i 3072.

Notatka

Widok systemu sys.asymmetric_keys zwraca rozmiar klucza 2048, nawet jeśli używany jest rozmiar klucza 3072.

Jakie są minimalne poziomy uprawnień wymagane dla każdego kroku konfiguracji w programie SQL Server?

Chociaż możesz wykonać wszystkie kroki konfiguracji jako członek stałej roli serwera sysadmin, firma Microsoft zachęca do zminimalizowania używanych uprawnień. Poniższa lista definiuje minimalny poziom uprawnień dla każdej akcji.

  • Aby utworzyć dostawcę kryptograficznego, wymagane jest uprawnienie CONTROL SERVER lub członkostwo w stałej roli serwera sysadmin.

  • Aby zmienić opcję konfiguracji i uruchomić instrukcję RECONFIGURE, musisz udzielić ALTER SETTINGS uprawnienia na poziomie serwera. Uprawnienie ALTER SETTINGS jest niejawnie przechowywane przez administratora systemu i serveradmin stałych ról serwera.

  • Aby utworzyć poświadczenie, wymagane są uprawnienia ALTER ANY CREDENTIAL.

  • Aby dodać poświadczenia do konta, wymagane jest uprawnienie ALTER ANY LOGIN.

  • Do utworzenia klucza asymetrycznego wymagane jest posiadanie uprawnienia CREATE ASYMMETRIC KEY.

Jak zmienić domyślny katalog Microsoft Entra, aby mój magazyn kluczy był tworzony w tej samej subskrypcji i katalogu co główna usługa utworzona dla łącznika SQL Server?

Zrzut ekranu przedstawiający kroki pomocy dotyczącej zmiany domyślnego katalogu Microsoft Entra ID.

  1. Przejdź do portalu Azure.

  2. W prawym górnym rogu strony wybierz ikonę ustawień lub profil użytkownika.

  3. Na stronie Katalogi i subskrypcje wybierz pozycję Wszystkie katalogi, aby wyświetlić wszystkie katalogi firmy Microsoft, do których należysz.

  4. Możesz zmienić katalog startowylub przełączyć się na inny katalog, jeśli masz wiele katalogów.

    Notatka

    Być może nie masz uprawnień do faktycznej zmiany katalogu domyślnego w subskrypcji platformy Azure. W takim przypadku utwórz jednostkę usługi Microsoft Entra w katalogu domyślnym, aby była ona w tym samym katalogu, w którym była używana później usługa Azure Key Vault.

Aby dowiedzieć się więcej o identyfikatorze Entra firmy Microsoft, przeczytaj Jak subskrypcje platformy Azure są powiązane z identyfikatorem Entra firmy Microsoft.

C. Wyjaśnienia kodu błędu łącznika programu SQL Server

Notatka

Chociaż Microsoft Entra ID to nowa nazwa usługi Azure Active Directory (Azure AD), aby zapobiec zakłócaniu działania istniejących środowisk, usługa Azure AD nadal pozostaje w niektórych zakodowanych na stałe elementach, takich jak pola interfejsu użytkownika, dostawcy połączeń, kody błędów i cmdlety. W tym artykule dwie nazwy są wymienne.

kody błędów dostawcy :

Kod błędu Symbol Opis
0 scp_err_Success The operation has succeeded.
1 scp_err_Failure The operation has failed.
2 scp_err_InsufficientBuffer This error tells engine to allocate more memory for the buffer.
3 scp_err_NotSupported The operation is not supported. For example, the key type or algorithm specified isn't supported by the EKM provider.
4 scp_err_NotFound The specified key or algorithm couldn't be found by the EKM provider.
5 scp_err_AuthFailure The authentication has failed with EKM provider.
6 scp_err_InvalidArgument The provided argument is invalid.
7 scp_err_ProviderError There is an unspecified error happened in EKM provider that is caught by SQL engine.
401 acquireToken Server responded 401 for the request. Make sure the client ID and secret are correct, and the credential string is a concatenation of AAD client ID and secret without hyphens.
404 getKeyByName The server responded 404, because the key name was not found. Please make sure the key name exists in your vault.
2049 scp_err_KeyNameDoesNotFitThumbprint The key name is too long to fit into SQL engine's thumbprint. The key name must not exceed 26 characters.
2050 scp_err_PasswordTooShort The secret string that is the concatenation of AAD client ID and secret is shorter than 32 characters.
2051 scp_err_OutOfMemory SQL engine has run out of memory and failed to allocate memory for EKM provider.
2052 scp_err_ConvertKeyNameToThumbprint Failed to convert key name to thumbprint.
2053 scp_err_ConvertThumbprintToKeyName| Failed to convert thumbprint to key name.
2057 scp_err_ThumbprintExistedInRegistry The key thumbprint already exists in Windows registry mapped to a different key URI.
2058 scp_err_FailureInRegistry| Failed to perform the operation in registry. SQL Server service account does not have permission to create the registry key.
3000 ErrorSuccess The AKV operation has succeeded.
3001 ErrorUnknown The AKV operation has failed with an unspecified error.
3002 ErrorHttpCreateHttpClientOutOfMemory Cannot create an HttpClient for AKV operation due to out of memory.
3003 ErrorHttpOpenSession Cannot open an Http session because of network error.
3004 ErrorHttpConnectSession Cannot connect an Http session because of network error.
3005 ErrorHttpAttemptConnect Cannot attempt a connect because of network error.
3006 ErrorHttpOpenRequest Cannot open a request due to network error.
3007 ErrorHttpAddRequestHeader Cannot add request header.
3008 ErrorHttpSendRequest Cannot send a request due to network error.
3009 ErrorHttpGetResponseCode Cannot get a response code due to network error.
3010 ErrorHttpResponseCodeUnauthorized Server responded 401 for the request.
3011 ErrorHttpResponseCodeThrottled Server has throttled the request.
3012 ErrorHttpResponseCodeClientError The request sent from the connector is invalid. This usually means the key name is invalid or contains invalid characters.
3013 ErrorHttpResponseCodeServerError Server responded a response code between 500 and 600.
3014 ErrorHttpQueryHeader Cannot query for response header.
3015 ErrorHttpQueryHeaderOutOfMemoryCopyHeader Cannot copy the response header due to out of memory.
3016 ErrorHttpQueryHeaderOutOfMemoryReallocBuffer Cannot query the response header due to out of memory when reallocating a buffer.
3017 ErrorHttpQueryHeaderNotFound Cannot find the query header in the response.
3018 ErrorHttpQueryHeaderUpdateBufferLength Cannot update the buffer length when querying the response header.
3019 ErrorHttpReadData Cannot read response data due to network error.
3076 ErrorHttpResourceNotFound The server responded 404, because the key name was not found. Make sure the key name exists in your vault.
3077 ErrorHttpOperationForbidden The server responded 403, because the user doesn't have proper permission to perform the action. Make sure you have the permission for the specified operation. At minimum, the connector requires 'get, list, wrapKey, unwrapKey' permissions to function properly.
3100 ErrorHttpCreateHttpClientOutOfMemory Cannot create a HttpClient for AKV operation due to out of memory.
3101 ErrorHttpOpenSession Cannot open a Http session due to network error.
3102 ErrorHttpConnectSession Cannot connect a Http session due to network error.
3103 ErrorHttpAttemptConnect Cannot attempt a connect due to network error.
3104 ErrorHttpOpenRequest Cannot open a request due to network error.
3105 ErrorHttpAddRequestHeader Cannot add request header.
3106 ErrorHttpSendRequest Cannot send a request due to network error.
3107 ErrorHttpGetResponseCode Cannot get a response code due to network error.
3108 ErrorHttpResponseCodeUnauthorized Server responded 401 for the request. Make sure the client Id and secret are correct, and the credential string is a concatenation of AAD client Id and secret without hyphens.
3109 ErrorHttpResponseCodeThrottled Server has throttled the request.
3110 ErrorHttpResponseCodeClientError The request is invalid. This usually means the key name is invalid or contains invalid characters.
3111 ErrorHttpResponseCodeServerError Server responded a response code between 500 and 600.
3112 ErrorHttpResourceNotFound The server responded 404, because the key name was not found. Please make sure the key name exists in your vault.
3113 ErrorHttpOperationForbidden The server responded 403, because the user does not have proper permission to perform the action. Please make sure you have the permission for the specified operation. At minimum,'get, wrapKey, unwrapKey' permissions are required.
3114 ErrorHttpQueryHeader Cannot query for response header.
3115 ErrorHttpQueryHeaderOutOfMemoryCopyHeader Cannot copy the response header due to out of memory.
3116 ErrorHttpQueryHeaderOutOfMemoryReallocBuffer Cannot query the response header due to out of memory when reallocating a buffer.
3117 ErrorHttpQueryHeaderNotFound Cannot find the query header in the response.
3118 ErrorHttpQueryHeaderUpdateBufferLength Cannot update the buffer length when querying the response header.
3119 ErrorHttpReadData Cannot read response data due to network error.
3120 ErrorHttpGetResponseOutOfMemoryCreateTempBuffer Cannot get response body due to out of memory when creating a temp buffer.
3121 ErrorHttpGetResponseOutOfMemoryGetResultString Cannot get response body due to out of memory when get result string.
3122 ErrorHttpGetResponseOutOfMemoryAppendResponse Cannot get response body due to out of memory when appending response.
3128 ErrorHttpBadRequest The secret and client id are correct but in the wrong format.
3200 ErrorGetAADValuesOutOfMemoryConcatPath Cannot get Azure Active Directory challenge header values due to out of memory when concatenating the path.
3201 ErrorGetAADDomainUrlStartPosition Cannot find the starting position for Azure Active Directory domain Url in malformatted response challenge header.
3202 ErrorGetAADDomainUrlStopPosition Cannot find the ending position for Azure Active Directory domain Url in malformatted response challenge header.
3203 ErrorGetAADDomainUrlMalformatted The Azure Active Directory response challenge header is malformatted and doesn't contain the AAD domain Url.
3204 ErrorGetAADDomainUrlOutOfMemoryAlloc Out of memory when allocating buffer for Azure Active Directory domain Url.
3205 ErrorGetAADTenantIdOutOfMemoryAlloc Out of memory when allocating buffer for Azure Active Directory tenantId.
3206 ErrorGetAKVResourceUrlStartPosition Cannot find the starting position for Azure Key Vault resource Url in malformatted response challenge header.
3207 ErrorGetAKVResourceUrlStopPosition Cannot find the ending position for Azure Key Vault resource Url in malformatted response challenge header.
3208 ErrorGetAKVResourceUrlOutOfMemoryAlloc Out of memory when allocating buffer for Azure Key Vault resource Url.
3300 ErrorGetTokenOutOfMemoryConcatPath Cannot get token due to out of memory when concatenating the request path.
3301 ErrorGetTokenOutOfMemoryConcatBody Cannot get token due to out of memory when concatenating the response body.
3302 ErrorGetTokenOutOfMemoryConvertResponseString Cannot get token due to out of memory when converting the response string.
3303 ErrorGetTokenBadCredentials Cannot get token due to incorrect credentials. Make sure the credential string or certificate is valid.
3304 ErrorGetTokenFailedToGetToken While the credentials are correct, the operation still failed to get a valid token.
3305 ErrorGetTokenRejected The token is valid but is rejected by server.
3306 ErrorGetTokenNotFound Cannot find the token in response.
3307 ErrorGetTokenJsonParser Cannot parse the JSON response of server.
3308 ErrorGetTokenExtractToken Cannot extract the token from the JSON response.
3400 ErrorGetKeyByNameOutOfMemoryConvertResponseString Cannot get the key by name due to out of memory converting the response string.
3401 ErrorGetKeyByNameOutOfMemoryConcatPath Cannot get the key by name due to out of memory when concatenating the path.
3402 ErrorGetKeyByNameOutOfMemoryConcatHeader Cannot get the key by name due to out of memory when concatenating the header.
3403 ErrorGetKeyByNameNoResponse Cannot get the key by name due to no response from server.
3404 ErrorGetKeyByNameJsonParser Cannot get the key by name due to failed to parse the JSON response.
3405 ErrorGetKeyByNameExtractKeyNode Cannot get the key by name due to failed to extract the key node from the response.
3406 ErrorGetKeyByNameExtractKeyId Cannot get the key by name due to failed to extract the key Id from the response.
3407 ErrorGetKeyByNameExtractKeyType Cannot get the key by name due to failed to extract the key type from the response.
3408 ErrorGetKeyByNameExtractKeyN Cannot get the key by name due to failed to extract the key N from the response.
3409 ErrorGetKeyByNameBase64DecodeN Cannot get the key by name due to failed to Base64 decode the N.
3410 ErrorGetKeyByNameExtractKeyE Cannot get the key by name due to failed to extract the key E from the response.
3411 ErrorGetKeyByNameBase64DecodeE Cannot get the key by name due to failed to Base64 decode the E.
3412 ErrorGetKeyByNameExtractKeyUri Cannot extract the key Uri from the response.
3500 ErrorBackupKeyOutOfMemoryConvertResponseString Cannot back up key due to out of memory when converting the response string.
3501 ErrorBackupKeyOutOfMemoryConcatPath Cannot back up key due to out of memory when concatenating the path.
3502 ErrorBackupKeyOutOfMemoryConcatHeader Cannot back up key due to out of memory when concatenating the request header.
3503 ErrorBackupKeyNoResponse Cannot back up key due to no response from server.
3504 ErrorBackupKeyJsonParser Cannot back up key due to failed to parse the JSON response.
3505 ErrorBackupKeyExtractValue Cannot back up key due to failed to extract the value from JSON response.
3506 ErrorBackupKeyBase64DecodeValue Cannot back up key due to failed to Base64 decode the value field.
3600 ErrorWrapKeyOutOfMemoryConvertResponseString Cannot wrap key due to out of memory when converting response string.
3601 ErrorWrapKeyOutOfMemoryConcatPath Cannot wrap key due to out of memory when concatenating the path.
3602 ErrorWrapKeyOutOfMemoryConcatHeader Cannot wrap key due to out of memory when concatenating the header.
3603 ErrorWrapKeyOutOfMemoryConcatBody Cannot wrap key due to out of memory when concatenating the body.
3604 ErrorWrapKeyOutOfMemoryConvertEncodedBody Cannot wrap key due to out of memory when converting the encoded body.
3605 ErrorWrapKeyBase64EncodeKey Cannot wrap key due to failed to Base64 encode the key.
3606 ErrorWrapKeyBase64DecodeValue Cannot wrap key due to failed to Base64 decode the response value.
3607 ErrorWrapKeyJsonParser Cannot wrap key due to failed to parse the JSON response.
3608 ErrorWrapKeyExtractValue Cannot wrap key due to failed to extract value from response.
3609 ErrorWrapKeyNoResponse Cannot wrap key due to no response from server.
3700 ErrorUnwrapKeyOutOfMemoryConvertResponseString Cannot unwrap key due to out of memory when converting response string.
3701 ErrorUnwrapKeyOutOfMemoryConcatPath Cannot unwrap key due to out of memory when concatenating the path.
3702 ErrorUnwrapKeyOutOfMemoryConcatHeader Cannot unwrap key due to out of memory when concatenating the header.
3703 ErrorUnwrapKeyOutOfMemoryConcatBody Cannot unwrap key due to out of memory when concatenating the body.
3704 ErrorUnwrapKeyOutOfMemoryConvertEncodedBody Cannot unwrap key due to out of memory when converting the encoded body.
3705 ErrorUnwrapKeyBase64EncodeKey Cannot unwrap key due to failed to Base64 encode the key.
3706 ErrorUnwrapKeyBase64DecodeValue Cannot unwrap key due to failed to Base64 decode the response value.
3707 ErrorUnwrapKeyJsonParser Cannot unwrap key due to failed to extract value from response.
3708 ErrorUnwrapKeyExtractValue Cannot unwrap key due to failed to extract value from response.
3709 ErrorUnwrapKeyNoResponse Cannot unwrap key due to no response from server.
3800 ErrorSecretAuthParamsGetRequestBody Error creating request body using AAD clientId and secret.
3801 ErrorJWTTokenCreateHeader Error creating JWT token header for authentication with AAD.
3802 ErrorJWTTokenCreatePayloadGUID Error creating GUID for JWT token payload for authentication with AAD.
3803 ErrorJWTTokenCreatePayload Error creating JWT token payload for authentication with AAD.
3804 ErrorJWTTokenCreateSignature Error creating JWT token signature for authentication with AAD.
3805 ErrorJWTTokenSignatureHashAlg Error getting SHA256 hash algorithm for authentication with AAD.
3806 ErrorJWTTokenSignatureHash Error creating SHA256 hash for JWT token authentication with AAD.
3807 ErrorJWTTokenSignatureSignHash Error signing JWT token hash for authentication with AAD.
3808 ErrorJWTTokenCreateToken Error creating JWT token for authentication with AAD.
3809 ErrorPfxCertAuthParamsImportPfx Error importing Pfx certificate for authentication with AAD.
3810 ErrorPfxCertAuthParamsGetThumbprint Error getting thumbprint from Pfx certificate for authentication with AAD.
3811 ErrorPfxCertAuthParamsGetPrivateKey Error getting private key from Pfx certificate for authentication with AAD.
3812 ErrorPfxCertAuthParamsSignAlg Error getting RSA signing algorithm for Pfx certificate authentication with AAD.
3813 ErrorPfxCertAuthParamsImportForSign Error importing Pfx private key for RSA signing for authentication with AAD.
3814 ErrorPfxCertAuthParamsCreateRequestBody Error creating request body from Pfx certificate for authentication with AAD.
3815 ErrorPEMCertAuthParamsGetThumbprint Error Base64 decoding Thumbprint for authentication with AAD.
3816 ErrorPEMCertAuthParamsGetPrivateKey Error getting RSA private key from PEM for authentication with AAD.
3817 ErrorPEMCertAuthParamsSignAlg Error getting RSA signing algorithm for PEM private key authentication with AAD.
3818 ErrorPEMCertAuthParamsImportForSign Error importing PEM private key for RSA signing for authentication with AAD.
3819 ErrorPEMCertAuthParamsCreateRequestBody Error creating request body from PEM private key for authentication with AAD.
3820 ErrorLegacyPrivateKeyAuthParamsSignAlg Error getting RSA signing algorithm for Legacy private key authentication with AAD.
3821 ErrorLegacyPrivateKeyAuthParamsImportForSign Error importing Legacy private key for RSA signing for authentication with AAD.
3822 ErrorLegacyPrivateKeyAuthParamsCreateRequestBody Error creating request body from Legacy private key for authentication with AAD.
3900 ErrorAKVDoesNotExist Error internet name not resolved. This typically indicates the Azure Key Vault is deleted.
4000 ErrorCreateKeyVaultRetryManagerOutOfMemory Cannot create a RetryManager for AKV operation due to out of memory.

Jeśli w tej tabeli nie widzisz kodu błędu, oto kilka innych powodów, dla których błąd może wystąpić:

  • Być może nie masz dostępu do Internetu i nie możesz uzyskać dostępu do usługi Azure Key Vault. Sprawdź połączenie internetowe.

  • Usługa Azure Key Vault może nie działać. Przejrzyj azure.status.microsoft. Spróbuj ponownie w innym momencie.

  • Być może usunięto klucz asymetryczny z usługi Azure Key Vault lub programu SQL Server. Przywróć klucz.

  • Jeśli zostanie wyświetlony błąd "Nie można załadować biblioteki", upewnij się, że masz zainstalowaną odpowiednią wersję pakietu redystrybucyjnego Visual Studio C++ na podstawie uruchomionej wersji programu SQL Server. W poniższej tabeli określono wersję do zainstalowania z Centrum pobierania Microsoft.

Dziennik zdarzeń systemu Windows rejestruje również błędy skojarzone z łącznikiem programu SQL Server, co może pomóc w dodatkowym kontekście, dlaczego błąd rzeczywiście występuje. Źródłem w dzienniku zdarzeń aplikacji systemu Windows będzie "Łącznik programu SQL Server dla usługi Microsoft Azure Key Vault".

Biblioteki środowiska uruchomieniowego języka C++ dla łącznika programu SQL Server w wersji 1.0.5.0

Wersja programu SQL Server Łącze instalacji redystrybucyjnej w przypadku korzystania z łącznika SQL Server Connector 1.0.5.0
2008, 2008 R2, 2012, 2014 pakiety redystrybucyjne Visual C++ dla programu Visual Studio 2013
2016, 2017, 2019 Pakiet redystrybucyjny Visual C++ dla Visual Studio 2015

Biblioteki środowiska uruchomieniowego języka C++ dla łącznika programu SQL Server w wersji 1.0.4.0

Wersja programu SQL Server Łącze instalacji redystrybucyjnej w przypadku korzystania z łącznika programu SQL Server Connector 1.0.4.0
2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 pakiety redystrybucyjne Visual C++ dla programu Visual Studio 2013

Dodatkowe źródła

Więcej informacji o rozszerzalnym zarządzaniu kluczami:

Mechanizmy szyfrowania SQL obsługujące EKM.

Powiązane polecenia Transact-SQL:

Dokumentacja usługi Azure Key Vault: