Felsökning av SQL Server Connector-underhåll &
gäller för:SQL Server
Kompletterande information om SQL Server Connector finns i den här artikeln. Mer information om SQL Server-kontakten finns i Extensible Key Management Using Azure Key Vault (SQL Server), Konfigurera SQL Server TDE-utökningsbar nyckelhantering med Azure Key Vaultoch Använd SQL Server-kontakt med SQL-krypteringsfunktioner.
Not
Även om Microsoft Entra ID är det nya namnet för Azure Active Directory (Azure AD), för att undvika störningar i befintliga miljöer, kvarstår Azure AD fortfarande i vissa hårdkodade element såsom gränssnittsfält, anslutningsleverantörer, felkoder och cmdletar. I den här artikeln är de två namnen utbytbara.
A. Underhållsinstruktioner för SQL Server Connector
Nyckelrotation
Azure Key Vault stöder nyckelrotation, vilket är processen att skapa en ny nyckel och uppdatera programmen för att använda den nya nyckeln. Nyckelrotation är en säkerhetsmetod som hjälper dig att skydda data om nyckeln skulle komprometteras. SQL Server Connector stöder nyckelrotation. Gamla nycklar bör inte tas bort eftersom det kan krävas att du återställer en databas med hjälp av en gammal nyckel. Om du vill rotera en nyckel följer du stegen i Rotera asymmetrisk nyckel med en ny AKV-nyckel eller en ny AKV-nyckelversion.
Uppgradering av SQL Server Connector
Version 1.0.0.440 och äldre har ersatts och stöds inte längre i produktionsmiljöer. Versioner 1.0.1.0 och senare stöds i produktionsmiljöer. Använd följande instruktioner för att uppgradera till den senaste versionen som är tillgänglig på Microsoft Download Center.
Uppgradera
- Stoppa SQL Server-tjänsten med SQL Server Configuration Manager.
- Avinstallera den gamla versionen med hjälp av Kontrollpanelen>Program>program och funktioner.
- Programnamn: SQL Server Connector för Microsoft Azure Key Vault
- Version: 15.0.300.96 (eller äldre)
- DLL-fildatum: 30 januari 2018 (eller äldre)
- Installera (uppgradera) nya SQL Server Connector för Microsoft Azure Key Vault.
- Version: 15.0.2000.440
- DLL-fildatum: 9 november 2024
- Starta SQL Server-tjänsten.
- Testkrypterade databaser är tillgängliga.
Tillbakagång
Stoppa SQL Server-tjänsten med SQL Server Configuration Manager.
Avinstallera den nya versionen med hjälp av Kontrollpanelen>Program>program och funktioner.
- Programnamn: SQL Server Connector för Microsoft Azure Key Vault
- Version: 15.0.2000.440
- DLL-fildatum: 9 november 2024
Installera den gamla versionen av SQL Server Connector för Microsoft Azure Key Vault.
- Version: 15.0.300.96
- DLL-fildatum: 30 januari 2018
Starta SQL Server-tjänsten.
Kontrollera att databaserna med TDE är tillgängliga.
När du har verifierat att uppdateringen fungerar kan du ta bort den gamla mappen SQL Server Connector (om du väljer att byta namn på den i stället för att avinstallera i steg 3).
Äldre versioner av SQL Server Connector
Djupa länkar till äldre versioner av SQL Server Connector
- Aktuell: 1.0.5.0 (version 15.0.2000.440) – Fildatum 9 november 2024
- 1.0.5.0 (version 15.0.2000.440) – Fildatum 24 november 2020
- 1.0.5.0 (version 15.0.300.96) – Fildatum 30 januari 2018
- 1.0.4.0: (version 13.0.811.168)
Rulla SQL Server-tjänstens huvudnamn
SQL Server använder tjänstens huvudnamn som skapats i Microsoft Entra ID (tidigare Azure Active Directory) som autentiseringsuppgifter för åtkomst till Key Vault. Tjänsteprincipalen har ett klient-ID och en autentiseringsnyckel. En SQL Server-autentiseringsuppgift konfigureras med VaultName, klient-IDoch -autentiseringsnyckeln. -autentiseringsnyckeln är giltig under en viss tidsperiod (ett eller två år). Innan tidsperioden går ut måste en ny nyckel genereras i Microsoft Entra-ID för tjänstens huvudprincip. Sedan måste autentiseringsuppgifterna ändras i SQL Server. Management Studio underhåller en cache för autentiseringsuppgifterna i den aktuella sessionen, så när en autentiseringsuppgift ändras bör Management Studio startas om.
Stöd för hanterad identitet för SQL Server på en virtuell Azure-dator
Från och med SQL Server 2022 Kumulativ uppdatering 17 (CU17) stöds Microsoft Entra-hanterade identiteter för Utökningsbar nyckelhantering (EKM) med Azure Key Vault (AKV) och hanterade maskinvarusäkerhetsmoduler (HSM) på SQL Server på virtuella Azure-datorer (endast Windows). För mer information, se om stöd för hanterad identitet för utökningsbar nyckelhantering med Azure Key Vault. Om du vill använda hanterade identiteter med SQL Server Connector måste anslutningsversionen vara 1.0.5.0 november 2024 eller senare. Ladda ned den senaste versionen från Microsoft Download Center.
Säkerhetskopiering och återställning av nycklar
Nyckelvalvet bör säkerhetskopieras regelbundet. Om en asymmetrisk nyckel i valvet går förlorad kan den återställas från säkerhetskopian. Nyckeln måste återställas med samma namn som tidigare, vilket PowerShell-kommandot återställer (se stegen nedan).
Om valvet har gått förlorat, återskapa ett valv och återställ den asymmetriska nyckeln till valvet med samma namn som tidigare. Valvnamnet kan vara annorlunda (eller samma som tidigare). Ange åtkomstbehörigheterna för det nya valvet för att ge SQL Server-tjänstens huvudnamn den åtkomst som behövs för SQL Server-krypteringsscenarierna och justera sedan SQL Server-autentiseringsuppgifterna så att det nya valvnamnet återspeglas.
Sammanfattningsvis följer följande steg:
- Säkerhetskopiera valvnyckeln (med hjälp av Backup-AzureKeyVaultKey PowerShell-cmdleten).
- Om valvet misslyckas skapar du ett nytt valv i samma geografiska region. Användaren som skapar valvet ska vara i samma standardkatalog som tjänstens huvudprincip för SQL Server.
- Återställ nyckeln till det nya valvet med hjälp av powershell-cmdleten Restore-AzureKeyVaultKey, som återställer nyckeln med samma namn som tidigare. Om det redan finns en nyckel med samma namn misslyckas återställningen.
- Ge behörigheter till SQL Server-tjänstens huvudprincip för att använda det här nya säkerhetsvalvet.
- Ändra SQL Server-autentiseringsuppgifterna som används av databasmotorn för att återspegla det nya valvnamnet (om det behövs).
Viktiga säkerhetskopior kan återställas i Azure-regioner så länge de finns kvar i samma geografiska region eller nationella moln: USA, Kanada, Japan, Australien, Indien, APAC, Europa Brasilien, Kina, USA: s regering eller Tyskland.
B. Vanliga frågor och svar
Om Azure Key Vault
Hur fungerar nyckelåtgärder med Azure Key Vault?
Den asymmetriska nyckeln i nyckelvalvet används för att skydda SQL Server-krypteringsnycklar. Endast den offentliga delen av den asymmetriska nyckeln lämnar någonsin valvet; den privata delen exporteras aldrig av valvet. Alla kryptografiska åtgärder som använder den asymmetriska nyckeln utförs i Azure Key Vault-tjänsten och skyddas av tjänstens säkerhet.
Vad är en nyckel-URI?
Varje nyckel i Azure Key Vault har en URI (Uniform Resource Identifier), som du kan använda för att referera till nyckeln i ditt program. Använd formatet https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey
för att hämta den aktuella versionen och använd formatet https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87
för att hämta en specifik version.
Konfigurera SQL Server
Vilka är de slutpunkter som SQL Server Connector behöver åtkomst till?
Kopplaren pratar med två slutpunkter, som måste tillåtas. Den enda port som krävs för utgående kommunikation till dessa andra tjänster är 443 för HTTPS:
login.microsoftonline.com/*:443
*.vault.azure.net/*:443
Dessutom kan kontrollen av listan över återkallade certifikat skapa HTTP-trafik på port 80.
Notera
Användning av SQL Server Connector för Azure Key Vault bakom en brandvägg eller proxyserver kan påverka prestanda om trafiken fördröjs eller blockeras. Bekanta dig med Få åtkomst till Azure Key Vault bakom en brandvägg för att säkerställa att rätt regler finns på plats.
Hur ansluter jag till Azure Key Vault via en HTTP(S) proxyserver? Connectorn använder proxyinställningar i Internet Explorers konfiguration. De här inställningarna kan styras via grupprincip eller via registret, men det är viktigt att observera att de inte är systemomfattande inställningar och måste riktas mot tjänstkontot som kör SQL Server-instansen. Om en databasadministratör visar eller redigerar inställningarna i Internet Explorer påverkar de bara databasadministratörens konto i stället för SQL Server-motorn. Loggning på servern interaktivt med tjänstkontot rekommenderas inte och blockeras i många säkra miljöer. Ändringar i de konfigurerade proxyinställningarna kan kräva att SQL Server-instansen startas om eftersom de cachelagras när anslutningsappen först försöker ansluta till ett nyckelvalv.
Vilka nyckelstorlekar i Azure Key Vault stöds av SQL Server Connector? Den senaste versionen av SQL Server Connector stöder Azure Key Vault-nycklar i storlekarna 2048 och 3072.
Not
Systemvyn sys.asymmetric_keys
returnerar nyckelstorleken som 2048 även om nyckelstorlek 3072 används.
Vilka är de lägsta behörighetsnivåer som krävs för varje konfigurationssteg i SQL Server?
Även om du kan utföra alla konfigurationssteg som medlem i den fasta sysadmin-serverrollen rekommenderar Microsoft att du minimerar de behörigheter du använder. I följande lista definieras den lägsta behörighetsnivån för varje åtgärd.
För att skapa en kryptografisk provider kräver
CONTROL SERVER
behörighet eller medlemskap i sysadmin fast serverroll.Om du vill ändra ett konfigurationsalternativ och köra
RECONFIGURE
-instruktionen måste du beviljas behörighetenALTER SETTINGS
servernivå. BehörighetenALTER SETTINGS
innehas implicit av sysadmin- och serveradmin fasta serverroller.För att skapa en autentiseringsuppgift kräver
ALTER ANY CREDENTIAL
behörighet.Om du vill lägga till en autentiseringsuppgift i en inloggning kräver
ALTER ANY LOGIN
behörighet.För att skapa en asymmetrisk nyckel kräver
CREATE ASYMMETRIC KEY
behörighet.
Hur ändrar jag min standardkatalog för Microsoft Entra så att mitt nyckelvalv skapas i samma prenumeration och katalog som tjänstens huvudnamn som jag skapade för SQL Server Connector?
Gå till Azure-portalen.
I det övre högra hörnet på sidan väljer du inställningsikonen eller din användarprofil.
På sidan Kataloger + prenumerationer väljer du Alla kataloger för att se alla Microsoft Entra-kataloger som du tillhör.
Du kan ändra startkatalogeneller växla till en annan katalog om du har flera kataloger.
Not
Du kanske inte har behörighet att faktiskt ändra standardkatalogen för din Azure-prenumeration. I det här fallet skapar du Tjänstens huvudnamn för Microsoft Entra i standardkatalogen så att den finns i samma katalog som Azure Key Vault som användes senare.
Mer information om Microsoft Entra-ID finns i Hur Azure-prenumerationer är relaterade till Microsoft Entra-ID.
C. Felkodsförklaringar för SQL Server Connector
Notera
Även om Microsoft Entra ID är det nya namnet för Azure Active Directory (Azure AD), används Azure AD fortfarande i vissa hårdkodade delar såsom gränssnittsfält, anslutningsleverantörer, felkoder och cmdletar, för att förhindra avbrott i befintliga miljöer. I den här artikeln är de två namnen utbytbara.
Felkoder för -leverantör:
Felkod | Symbol | Beskrivning |
---|---|---|
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. |
Om du inte ser felkoden i den här tabellen kan det här vara några andra orsaker till att felet kan inträffa:
Du kanske inte har åtkomst till Internet och kan inte komma åt ditt Azure Key Vault. Kontrollera internetanslutningen.
Azure Key Vault-tjänsten kan vara nere. Granska azure.status.microsoft. Försök igen vid ett annat tillfälle.
Du kanske har tagit bort den asymmetriska nyckeln från Azure Key Vault eller SQL Server. Återställ nyckeln.
Om du får felet "Det går inte att läsa in biblioteket" kontrollerar du att du har rätt version av Visual Studio C++ redistributable installerad baserat på den version av SQL Server som du kör. Följande tabell anger vilken version som ska installeras från Microsoft Download Center.
Windows-händelseloggen loggar också fel som är associerade med SQL Server Connector, vilket kan hjälpa till med ytterligare kontext om varför felet faktiskt inträffar. Källan i Händelseloggen i Windows-applikationer är "SQL Server Connector för Microsoft Azure Key Vault".
C++ Runtime-bibliotek för SQL Server Connector 1.0.5.0
SQL Server-version | Omdistribuerbar installationslänk om du använder SQL Server Connector 1.0.5.0 |
---|---|
2008, 2008 R2, 2012, 2014 | Visual C++ Redistributable Packages för Visual Studio 2013 |
2016, 2017, 2019 | Visual C++ Redistributable för Visual Studio 2015 |
C++ Runtime-bibliotek för SQL Server Connector 1.0.4.0
SQL Server-version | Omdistribuerbar installationslänk om du använder SQL Server Connector 1.0.4.0 |
---|---|
2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 | Visual C++ Redistributable Packages för Visual Studio 2013 |
Ytterligare referenser
Mer om utökningsbar nyckelhantering:
SQL-kryptering som stöder EKM:
Relaterade Transact-SQL kommandon:
Dokumentation om Azure Key Vault:
PowerShell Azure Key Vault Cmdlets referensdokumentation
Relaterat innehåll
- Utökningsbar nyckelhantering med Azure Key Vault (SQL Server)
- Använda SQL Server Connector med SQL-krypteringsfunktioner
- EKM-provider aktiverad (alternativ för serverkonfiguration)
- Konfigurera utökningsbar nyckelhantering för SQL Server TDE med hjälp av Azure Key Vault-
- Ytterligare exempelskript finns i bloggen på transparent datakryptering i SQL Server och Utökningsbar nyckelhantering med Azure Key Vault