Problemen met onderhoud van SQL Server-connector & oplossen
van toepassing op:SQL Server-
Aanvullende informatie over de SQL Server-connector vindt u in dit artikel. Zie Extensible Key Management met behulp van Azure Key Vault (SQL Server), Configureren van SQL Server TDE Extensible Key Management met behulp van Azure Key Vault, en Gebruik SQL Server Connector met SQL Encryptie Featuresvoor meer informatie over de SQL Server-connector.
Notitie
Hoewel Microsoft Entra ID de nieuwe naam is voor Azure Active Directory (Azure AD), blijft Azure AD, om verstoring van bestaande omgevingen te voorkomen, nog steeds bestaan in sommige hardcoded elementen, zoals UI-velden, verbindingsproviders, foutcodes en cmdlets. In dit artikel zijn de twee namen uitwisselbaar.
A. Onderhoudsinstructies voor SQL Server Connector
Sleutelrotatie
Azure Key Vault ondersteunt sleutelrotatie. Dit is het proces voor het maken van een nieuwe sleutel en het bijwerken van de toepassingen voor het gebruik van de nieuwe sleutel. Sleutelrotatie is een best practice voor beveiliging waarmee u gegevens kunt beveiligen voor het geval de sleutel wordt aangetast. De SQL Server-connector ondersteunt sleutelrotatie. Oude sleutels mogen niet worden verwijderd omdat het mogelijk vereist is om een database te herstellen met behulp van een oude sleutel. Als u een sleutel wilt draaien, volgt u de stappen in "Asymmetrische sleutel draaien met een nieuwe AKV-sleutel of een nieuwe AKV-sleutelversie".
Upgrade van SQL Server-connector
Versies 1.0.0.440 en ouder zijn vervangen en worden niet meer ondersteund in productieomgevingen. Versies 1.0.1.0 en hoger worden ondersteund in productieomgevingen. Gebruik de volgende instructies om een upgrade uit te voeren naar de nieuwste versie die beschikbaar is op het Microsoft Downloadcentrum.
Opwaarderen
- Stop de SQL Server-service met behulp van SQL Server Configuration Manager.
- Verwijder de oude versie via Configuratiescherm>Programma's>Programma's en onderdelen.
- Toepassingsnaam: SQL Server Connector voor Microsoft Azure Key Vault
- Versie: 15.0.300.96 (of ouder)
- DATUM VAN DLL-bestand: 30 januari 2018 (of ouder)
- Installeer (upgrade) nieuwe SQL Server Connector voor Microsoft Azure Key Vault.
- Versie: 15.0.2000.440
- DATUM DLL-bestand: 9 november 2024
- Start de SQL Server-service.
- Testdatabases zijn versleuteld en toegankelijk.
Terugdraaien
Stop de SQL Server-service met SQL Server Configuration Manager-.
Verwijder de nieuwe versie met Configuratiescherm>Programma's>Programma's en onderdelen.
- Toepassingsnaam: SQL Server Connector voor Microsoft Azure Key Vault
- Versie: 15.0.2000.440
- DATUM DLL-bestand: 9 november 2024
Installeer de oude versie van SQL Server Connector voor Microsoft Azure Key Vault.
- Versie: 15.0.300.96
- DATUM DLL-bestand: 30 januari 2018
Start de SQL Server-service.
Controleer of de databases die gebruikmaken van TDE toegankelijk zijn.
Nadat u hebt gecontroleerd of de update werkt, kunt u de oude SQL Server Connector map verwijderen (als u ervoor kiest om de naam ervan te wijzigen in plaats van te verwijderen in stap 3).
Oudere versies van de SQL Server-connector
Uitgebreide koppelingen naar oudere versies van de SQL Server-connector
- Huidige: 1.0.5.0 (versie 15.0.2000.440) – Bestandsdatum 9 november 2024
- 1.0.5.0 (versie 15.0.2000.440) – Bestandsdatum 24 november 2020
- 1.0.5.0 (versie 15.0.300.96) – Bestandsdatum 30 januari 2018
- 1.0.4.0: (versie 13.0.811.168)
De SQL Server-service-principal bijwerken
SQL Server maakt gebruik van service-principals die zijn gemaakt in Microsoft Entra ID (voorheen Azure Active Directory) als referenties voor toegang tot de Key Vault. De service-principal heeft een client-id en verificatiesleutel. Een SQL Server-referentie is ingesteld met de VaultName-, client-iden verificatiesleutel. De verificatiesleutel is gedurende een bepaalde periode geldig (een of twee jaar). Voordat de periode verloopt, moet er een nieuwe sleutel worden gegenereerd in Microsoft Entra-id voor de service-principal. Vervolgens moeten de referentiegegevens worden gewijzigd in SQL Server. Management Studio onderhoudt een cache voor de referentie in de huidige sessie, dus wanneer een referentie wordt gewijzigd, moet Management Studio opnieuw worden opgestart.
Ondersteuning voor beheerde identiteiten voor SQL Server op Azure VM
Vanaf SQL Server 2022 Cumulatieve update 17 (CU17) worden door Microsoft Entra beheerde identiteiten ondersteund voor Extensible Key Management (EKM) met Azure Key Vault (AKV) en Managed Hardware Security Modules (HSM) op SQL Server op Azure-VM's (alleen Windows). Zie Managed Identity-ondersteuning voor Extensible Key Management met Azure Key Vaultvoor meer informatie. Als u beheerde identiteiten wilt gebruiken met de SQL Server-connector, moet de connectorversie 1.0.5.0 november 2024 of hoger zijn. Download de nieuwste versie van het Microsoft Downloadcentrum.
Back-up en herstel van sleutels
Er moet regelmatig een back-up van de sleutelkluis worden gemaakt. Als een asymmetrische sleutel in de kluis verloren gaat, kan deze vanuit een back-up worden hersteld. De sleutel moet worden hersteld met dezelfde naam als voorheen, wat de Opdracht PowerShell herstellen doet (zie de onderstaande stappen).
Als de kluis verloren is gegaan, maakt u een kluis opnieuw en herstelt u de asymmetrische sleutel naar de kluis met dezelfde naam als voorheen. De kluisnaam kan anders zijn (of hetzelfde als voorheen). Stel de toegangsmachtigingen voor de nieuwe kluis in om de SQL Server-service-principal de toegang te verlenen die nodig is voor de SQL Server-versleutelingsscenario's en pas vervolgens de SQL Server-referentie aan zodat de nieuwe kluisnaam wordt weerspiegeld.
Kortom, dit zijn de stappen:
- Maak een back-up van de kluissleutel (met behulp van de Backup-AzureKeyVaultKey PowerShell-cmdlet).
- In het geval van een kluisfout, maak een nieuwe kluis in dezelfde geografische regio. De gebruiker die de kluis maakt, moet zich in dezelfde standaardmap bevinden als de configuratie van de service-principal voor SQL Server.
- Herstel de sleutel naar de nieuwe kluis met behulp van de Restore-AzureKeyVaultKey PowerShell-cmdlet, waarmee de sleutel wordt hersteld met dezelfde naam als voorheen. Als er al een sleutel met dezelfde naam is, mislukt het herstellen.
- Verdeel machtigingen aan de SQL Server-service-principal om deze nieuwe kluis te gebruiken.
- Wijzig de SQL Server-referentie die door de database-engine wordt gebruikt om de naam van de nieuwe kluis weer te geven (indien nodig).
Belangrijke back-ups kunnen worden hersteld in Azure-regio's, zolang ze in dezelfde geografische regio of nationale cloud blijven: VS, Canada, Japan, Australië, India, APAC, Europa Brazilië, China, Amerikaanse overheid of Duitsland.
B. Veelgestelde vragen
In Azure Key Vault
Hoe werken sleutelbewerkingen met Azure Key Vault?
De asymmetrische sleutel in de sleutelkluis wordt gebruikt voor het beveiligen van SQL Server-versleutelingssleutels. Alleen het openbare gedeelte van de asymmetrische sleutel verlaat de kluis; het privégedeelte wordt nooit geëxporteerd door de kluis. Alle cryptografische bewerkingen met behulp van de asymmetrische sleutel worden uitgevoerd binnen de Azure Key Vault-service en worden beveiligd door de beveiliging van de service.
Wat is een sleutel-URI?
Elke sleutel in Azure Key Vault heeft een URI (Uniform Resource Identifier), die u kunt gebruiken om te verwijzen naar de sleutel in uw toepassing. Gebruik de indeling https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey
om de huidige versie op te halen en gebruik de indeling https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87
om een specifieke versie op te halen.
Bij het configureren van SQL Server
Wat zijn de eindpunten waartoe de SQL Server-connector toegang nodig heeft?
De connector praat met twee eindpunten, die moeten worden toegestaan. De enige poort die is vereist voor uitgaande communicatie met deze andere services is 443 voor HTTPS:
login.microsoftonline.com/*:443
*.vault.azure.net/*:443
Daarnaast kan het controleren van de certificaatintrekkingslijst HTTP-verkeer maken op poort 80.
Notitie
Het gebruik van de SQL Server-connector voor Azure Key Vault achter een firewall of proxyserver kan van invloed zijn op de prestaties als het verkeer is vertraagd of geblokkeerd. Maak jezelf vertrouwd met Access Azure Key Vault die zich achter een firewall bevindt om te garanderen dat de juiste regels aanwezig zijn.
Hoe maak ik verbinding met Azure Key Vault via een HTTP(S)-proxyserver? De connector maakt gebruik van de proxyconfiguratie-instellingen van Internet Explorer. Deze instellingen kunnen worden beheerd via Groepsbeleid of via het register, maar het is belangrijk om te weten dat ze geen systeembrede instellingen zijn en moeten worden gericht op het serviceaccount waarop het SQL Server-exemplaar wordt uitgevoerd. Als een databasebeheerder de instellingen in Internet Explorer bekijkt of bewerkt, heeft deze alleen invloed op het account van de databasebeheerder in plaats van op de SQL Server-engine. Aanmelden bij de server interactief met behulp van het serviceaccount wordt niet aanbevolen en wordt geblokkeerd in veel beveiligde omgevingen. Voor wijzigingen in de geconfigureerde proxy-instellingen moet het SQL Server-exemplaar mogelijk opnieuw worden opgestart, omdat deze in de cache worden opgeslagen wanneer de connector voor het eerst verbinding probeert te maken met een sleutelkluis.
Welke sleutelgrootten in Azure Key Vault worden ondersteund door de SQL Server-connector? De nieuwste build van SQL Server Connector ondersteunt Azure Key Vault-sleutels van grootte 2048 en 3072.
Notitie
De sys.asymmetric_keys
systeemweergave retourneert de sleutelgrootte als 2048, zelfs als sleutelgrootte 3072 wordt gebruikt.
Wat zijn de minimale machtigingsniveaus die vereist zijn voor elke configuratiestap in SQL Server?
Hoewel u alle configuratiestappen als lid van de vaste serverfunctie sysadmin kunt uitvoeren, raadt Microsoft u aan om de machtigingen die u gebruikt te minimaliseren. De volgende lijst definieert het minimale machtigingsniveau voor elke actie.
Als u een cryptografische provider wilt maken, hebt u
CONTROL SERVER
machtiging of lidmaatschap van de sysadmin vaste serverfunctie nodig.Als u een configuratieoptie wilt wijzigen en de
RECONFIGURE
-instructie wilt uitvoeren, moet u de machtigingALTER SETTINGS
serverniveau krijgen. DeALTER SETTINGS
-machtiging wordt impliciet toegekend aan de sysadmin en serveradmin vaste serverrollen.Om een credential aan te maken, hebt u
ALTER ANY CREDENTIAL
machtiging nodig.Als u een aanmeldingsgegeven aan een login wilt toevoegen, hebt u
ALTER ANY LOGIN
autorisatie nodig.Als u een asymmetrische sleutel wilt maken, hebt u
CREATE ASYMMETRIC KEY
machtiging nodig.
Hoe wijzig ik mijn standaardMap Microsoft Entra zodat mijn sleutelkluis wordt gemaakt in hetzelfde abonnement en dezelfde map als de service-principal die ik heb gemaakt voor de SQL Server-connector?
Ga naar de Azure Portal.
Selecteer in de rechterbovenhoek van de pagina het instellingenpictogram of uw gebruikersprofiel.
Selecteer op de pagina Mappen en abonnementenAlle mappen om alle Microsoft Entra-mappen te zien waartoe u behoort.
U kunt de opstartmapwijzigen of overschakelen naar een andere map als u meerdere mappen hebt.
Notitie
Mogelijk hebt u geen machtigingen om de standaardmap voor uw Azure-abonnement daadwerkelijk te wijzigen. In dit geval maakt u de Microsoft Entra-service-principal in uw standaardmap, zodat deze zich in dezelfde map bevindt als de Azure Key Vault die later wordt gebruikt.
C. Uitleg van foutcodes voor SQL Server Connector
Notitie
Hoewel Microsoft Entra ID de nieuwe naam is voor Azure Active Directory (Azure AD), blijft Azure AD om te voorkomen dat bestaande omgevingen worden onderbroken, bestaan in sommige hardcoded elementen zoals UI-velden, verbindingsproviders, foutcodes en cmdlets. In dit artikel zijn de twee namen uitwisselbaar.
foutcodes van provider:
Foutcode | Symbool | Beschrijving |
---|---|---|
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. |
Als u uw foutcode niet in deze tabel ziet, zijn er enkele andere redenen waarom de fout kan optreden:
Mogelijk hebt u geen internettoegang en hebt u geen toegang tot uw Azure Key Vault. Controleer uw internetverbinding.
De Azure Key Vault-service kan niet beschikbaar zijn. Controleer op azure.status.microsoft. Probeer het op een ander moment opnieuw.
Mogelijk hebt u de asymmetrische sleutel verwijderd uit Azure Key Vault of SQL Server. Herstel de sleutel.
Als u de foutmelding 'Kan bibliotheek niet laden' krijgt, controleer dan of de juiste versie van de Visual Studio C++ redistributable is geïnstalleerd, gebaseerd op de versie van SQL Server die u gebruikt. In de volgende tabel wordt aangegeven welke versie moet worden geïnstalleerd vanuit het Microsoft Downloadcentrum.
In het Windows-gebeurtenislogboek worden ook fouten vastgelegd die zijn gekoppeld aan de SQL Server-connector, wat kan helpen bij aanvullende context waarom de fout daadwerkelijk optreedt. De bron in het Windows-toepassingsgebeurtenislogboek is "SQL Server Connector voor Microsoft Azure Key Vault".
C++ Runtime-bibliotheken voor SQL Server Connector 1.0.5.0
SQL Server-versie | Herdistribueerbare installatiekoppeling als u SQL Server Connector 1.0.5.0 gebruikt |
---|---|
2008, 2008 R2, 2012, 2014 | Visual C++ Redistributable Packages for Visual Studio 2013 |
2016, 2017, 2019 | Visual C++ Redistributable voor Visual Studio 2015 |
C++ Runtime-bibliotheken voor SQL Server Connector 1.0.4.0
SQL Server-versie | Herdistribueerbare installatiekoppeling als u SQL Server Connector 1.0.4.0 gebruikt |
---|---|
2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 | Visual C++ Redistributable Packages for Visual Studio 2013 |
Aanvullende verwijzingen
Meer informatie over uitbreidbaar sleutelbeheer:
SQL-encrypties die EKM ondersteunen:
Gerelateerde Transact-SQL opdrachten:
Documentatie voor Azure Key Vault:
PowerShell Azure Key Vault-cmdlets naslaginformatie
Verwante inhoud
- Uitbreidbaar sleutelbeheer met behulp van Azure Key Vault (SQL Server)
- SQL Server-connector gebruiken met SQL-versleutelingsfuncties
- EKM-provider ingeschakeld (serverconfiguratieoptie)
- SQL Server TDE Extensible Key Management instellen met behulp van Azure Key Vault
- Zie de blog op SQL Server Transparent Data Encryption en Extensible Key Management met Azure Key Vault voor aanvullende voorbeeldscripts