Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Zatrzymaj usługę SQL Server przy użyciu programu SQL Server Configuration Manager.
- Odinstaluj starą wersję przy użyciu panelu sterowania >Programy>Programy i funkcje.
- Nazwa aplikacji: Łącznik programu SQL Server dla usługi Microsoft Azure Key Vault
- Wersja: 15.0.300.96 (lub starsza)
- Data pliku DLL: 30 stycznia 2018 r. (lub starsze)
- Zainstaluj (uaktualnij) nowy łącznik programu SQL Server dla usługi Microsoft Azure Key Vault.
- Wersja: 15.0.2000.440
- Data pliku DLL: 9 listopada 2024 r.
- Uruchom usługę SQL Server.
- Testowanie zaszyfrowanych baz danych jest dostępne.
Cofnięcie
Zatrzymaj usługę SQL Server przy użyciu programu SQL Server Configuration Manager.
Odinstaluj nową wersję przy użyciu panelu sterowania >Programy>Programy i funkcje.
- Nazwa aplikacji: Łącznik programu SQL Server dla usługi Microsoft Azure Key Vault
- Wersja: 15.0.2000.440
- Data pliku DLL: 9 listopada 2024 r.
Zainstaluj starą wersję łącznika programu SQL Server dla usługi Microsoft Azure Key Vault.
- Wersja: 15.0.300.96
- Data pliku DLL: 30 stycznia 2018 r.
Uruchom usługę SQL Server.
Sprawdź, czy bazy danych korzystające z funkcji TDE są dostępne.
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
- Bieżące: 1.0.5.0 (wersja 15.0.2000.440) — data pliku 09 listopada 2024
- 1.0.5.0 (wersja 15.0.2000.440) — data pliku 24 listopada 2020 r.
- 1.0.5.0 (wersja 15.0.300.96) — data pliku 30 stycznia 2018 r.
- 1.0.4.0: (wersja 13.0.811.168)
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. UprawnienieALTER 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?
Przejdź do portalu Azure.
W prawym górnym rogu strony wybierz ikonę ustawień lub profil użytkownika.
Na stronie Katalogi i subskrypcje wybierz pozycję Wszystkie katalogi, aby wyświetlić wszystkie katalogi firmy Microsoft, do których należysz.
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:
Dokumentacja poleceń cmdlet programu PowerShell dotycząca usługi Azure Key Vault
Powiązana zawartość
- rozszerzalne zarządzanie kluczami przy użyciu usługi Azure Key Vault (SQL Server)
- używanie łącznika programu SQL Server z funkcjami szyfrowania SQL
- włączony dostawca EKM (opcja konfiguracji serwera)
- konfigurowanie rozszerzonego zarządzania kluczami TDE programu SQL Server przy użyciu usługi Azure Key Vault
- Aby uzyskać dodatkowe przykładowe skrypty, zobacz blog na stronie Transparent Data Encryption w SQL Server i rozszerzalne zarządzanie kluczami za pomocą usługi Azure Key Vault