Condividi tramite


Manutenzione e risoluzione dei problemi di Connettore SQL Server

Si applica a:SQL Server

Informazioni supplementari sul Connettore SQL Server sono disponibili in questo articolo. Per ulteriori informazioni sul connettore SQL Server, vedere Gestione estendibile delle chiavi utilizzando Azure Key Vault (SQL Server), Configurare la gestione estendibile delle chiavi TDE di SQL Server usando Azure Key Vaulte Utilizzare il connettore SQL Server con le funzionalità di crittografia SQL.

Nota

Anche se Microsoft Entra ID è il nuovo nome per Azure Active Directory (Azure AD), per evitare l'interruzione degli ambienti esistenti, la denominazione Azure AD è tuttora mantenuta in alcuni elementi hardcoded, ad esempio campi dell'interfaccia utente, provider di connessioni, codici errore e cmdlet. All’interno di questo articolo i due nomi vengono utilizzati in modo intercambiabile.

A. Istruzioni di manutenzione per Connettore SQL Server

Rotazione delle chiavi

Azure Key Vault supporta la rotazione delle chiavi, ovvero il processo di creazione di una nuova chiave e l'aggiornamento delle applicazioni per l'uso della nuova chiave. La rotazione delle chiavi è una procedura consigliata per la sicurezza che consente di proteggere i dati nel caso in cui la chiave venga compromessa. Connettore SQL Server supporta la rotazione delle chiavi. Le chiavi precedenti non devono essere eliminate perché potrebbe essere necessario ripristinare un database usando una chiave precedente. Per ruotare una chiave, seguire i passaggi descritti in Ruotare la chiave asimmetrica con una nuova chiave AKV o una nuova versione della chiave AKV.

Aggiornamento di Connettore SQL Server

Le versioni 1.0.0.440 e precedenti sono state sostituite e non sono più supportate negli ambienti di produzione. Le versioni 1.0.1.0 e successive sono supportate negli ambienti di produzione. Usare le istruzioni seguenti per eseguire l'aggiornamento alla versione più recente disponibile nell'Area download Microsoft.

Aggiornamento

  1. Fermare il servizio SQL Server usando Configuration Manager di SQL Server.
  2. Disinstallare la versione precedente usando Pannello di controllo>Programmi>Programmi e funzionalità.
    1. Nome dell'applicazione: Connettore SQL Server per Azure Key Vault
    2. Versione: 15.0.300.96 (o precedente)
    3. Data file DLL: 30 gennaio 2018 (o più vecchio)
  3. Installare (aggiornare) il nuovo connettore SQL Server per Microsoft Azure Key Vault.
    1. Versione: 15.0.2000.440
    2. Data file DLL: 9 novembre 2024
  4. Avviare il servizio SQL Server.
  5. I database crittografati di test sono accessibili.

Ripristino

  1. Arrestare il servizio SQL Server usando Gestione configurazione di SQL Server.

  2. Disinstalla la nuova versione usando Pannello di controllo>Programmi>Programmi e funzionalità.

    1. Nome dell'applicazione: Connettore SQL Server per Azure Key Vault
    2. Versione: 15.0.2000.440
    3. Data del file DLL: 9 novembre 2024
  3. Installare la versione precedente del connettore SQL Server per Microsoft Azure Key Vault.

    1. Versione: 15.0.300.96
    2. File DLL, data: 30 gennaio 2018
  4. Avviare il servizio SQL Server.

  5. Verificare che i database che usano TDE siano accessibili.

  6. Dopo aver convalidato il funzionamento dell'aggiornamento, è possibile eliminare la cartella connettore di SQL Server precedente( se si sceglie di rinominarla invece di disinstallarla nel passaggio 3).

Versioni precedenti del Connettore SQL Server

Collegamenti diretti a versioni precedenti del Connettore SQL Server

Rotazione dell'entità di sicurezza del servizio SQL Server

SQL Server usa le entità servizio create in Microsoft Entra ID (in precedenza Azure Active Directory) come credenziali per accedere al Key Vault. L'entità servizio ha un ID client e una chiave di autenticazione. Le credenziali di SQL Server vengono configurate con VaultName, ID client e chiave di autenticazione. La Chiave di autenticazione è valida per un determinato periodo di tempo (uno o due anni). Prima della scadenza del periodo di tempo, è necessario generare una nuova chiave in Microsoft Entra ID per l'entità servizio. Successivamente, è necessario cambiare le credenziali in SQL Server. Management Studio mantiene una cache per le credenziali nella sessione corrente, per cui, quando vengono modificate le credenziali, Management Studio deve essere riavviato.

Supporto dell'identità gestita per SQL Server in una macchina virtuale di Azure

A partire da SQL Server 2022 Cumulative Update 17 (CU17), le identità gestite di Microsoft Entra sono supportate per Extensible Key Management (EKM) con Azure Key Vault (AKV) e moduli di protezione hardware gestiti (HSM) in SQL Server in macchine virtuali di Azure (solo Windows). Per ulteriori informazioni, consultare il supporto per l'identità gestita nella gestione estendibile delle chiavi con Azure Key Vault. Per usare le identità gestite con il connettore SQL Server, la versione del connettore deve essere 1.0.5.0 novembre 2024 o versione successiva. Scarica la versione più recente dal Microsoft Download Center.

Backup e ripristino delle chiavi

È importante eseguire regolarmente il backup dell'insieme di credenziali delle chiavi. In caso di perdita di una chiave asimmetrica nell'archivio, è possibile ripristinarla dal backup. La chiave deve essere ripristinata usando lo stesso nome precedente con il comando Ripristina di PowerShell (vedere i passaggi successivi).

Se la cassaforte è stata persa, ricrea una cassaforte e ripristina la chiave asimmetrica nella cassaforte usando lo stesso nome di prima. Il nome del caveau può essere diverso o uguale a prima. Impostare le autorizzazioni di accesso nel nuovo vault per concedere al principale del servizio SQL Server l'accesso richiesto per gli scenari di crittografia di SQL Server, e quindi modificare le credenziali di SQL Server in modo che rifletta il nuovo nome del vault.

In sintesi, ecco i passaggi necessari:

  • Eseguire il backup della chiave dell'archivio usando il cmdlet di PowerShell Backup-AzureKeyVaultKey.
  • In caso di guasto della cassaforte, creane una nuova nella stessa area geografica. L'utente che crea il vault deve trovarsi nella stessa directory predefinita del principal del servizio configurato per SQL Server.
  • Ripristinare la chiave nel nuovo Key Vault usando il cmdlet di PowerShell Restore-AzureKeyVaultKey, il quale ripristina la chiave mantenendo lo stesso nome che aveva in precedenza. Se esiste già una chiave con lo stesso nome, il ripristino non riesce.
  • Concedere le autorizzazioni all'entità servizio di SQL Server per l'uso di questa nuova cassaforte.
  • Modificare le credenziali di SQL Server usate dal motore di database per riflettere il nuovo nome del vault (se necessario).

I backup delle chiavi possono essere ripristinati nelle aree di Azure, a condizione che rimangano nella stessa area geografica o nel cloud nazionale: Stati Uniti, Canada, Giappone, Australia, India, Asia Pacifico, Europa, Brasile, Cina, US Gov o Germania.

B. Domande frequenti

Informazioni sull'insieme di credenziali delle chiavi di Azure

Come funzionano le operazioni chiave con Azure Key Vault?

La chiave asimmetrica nell'archivio di chiavi è utilizzata per proteggere le chiavi di crittografia di SQL Server. Solo la parte pubblica della chiave asimmetrica lascia il caveau; la parte privata non viene mai esportata dal caveau. Tutte le operazioni di crittografia che usano la chiave asimmetrica vengono eseguite all'interno del servizio Azure Key Vault e sono protette dal sistema di sicurezza del servizio.

Che cos'è un URI della chiave?

Ogni chiave in Azure Key Vault ha un URI (Uniform Resource Identifier) che puoi usare per fare riferimento alla chiave nella tua applicazione. Usare il formato https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey per ottenere la versione corrente e usare il formato https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87 per ottenere una versione specifica.

Sulla configurazione di SQL Server

Quali sono gli endpoint a cui deve accedere il connettore SQL Server?

Il connettore comunica con due endpoint che devono essere autorizzati. L'unica porta necessaria per la comunicazione in uscita con questi altri servizi è 443 per HTTPS:

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

Inoltre, il controllo dell'elenco di revoche di certificati potrebbe creare traffico HTTP sulla porta 80.

Nota

L'uso del Connettore SQL Server per Azure Key Vault dietro un firewall o un server proxy può influire sulle prestazioni se il traffico viene ritardato o bloccato. Acquisire familiarità con l'accesso ad Azure Key Vault dietro un firewall per assicurarsi che le regole presenti siano corrette.

Come si esegue la connessione ad Azure Key Vault usando un server proxy HTTP(S)? Il Connettore usa le impostazioni di configurazione del proxy di Internet Explorer. Queste impostazioni possono essere controllate usando Criteri di gruppo o il Registro di sistema, ma è importante tenere presente che non sono impostazioni a livello di sistema e dovranno essere indirizzate all'account del servizio che esegue l'istanza dell'istanza di SQL Server. Se un Amministratore di database visualizza o modifica le impostazioni in Internet Explorer, queste avranno effetto solo sull'account dell'Amministratore di database anziché sul motore di SQL Server. L'accesso interattivo al server usando l'account del servizio non è consigliato e viene bloccato in molti ambienti protetti. Per rendere effettive le modifiche apportate alle impostazioni proxy configurate, potrebbe essere necessario riavviare l'istanza di SQL Server perché vengono memorizzate nella cache quando il Connettore tenta per la prima volta di connettersi a un insieme di credenziali delle chiavi.

Quali dimensioni delle chiavi in Azure Key Vault sono supportate dal Connettore SQL Server? La build più recente del Connettore SQL Server or supporta le chiavi di Azure Key Vault di dimensioni 2048 e 3072.

Nota

La visualizzazione di sistema sys.asymmetric_keys restituisce le dimensioni della chiave come 2048 anche se viene usata la dimensione della chiave 3072.

Quali sono i livelli di autorizzazione minimi necessari per ogni passaggio di configurazione in SQL Server?

Anche se è possibile eseguire tutti i passaggi di configurazione come membro del ruolo predefinito del server di amministratore di sistema (sysadmin), Microsoft consiglia di ridurre al minimo le autorizzazioni. L'elenco seguente indica il livello di autorizzazione minima per ogni azione.

  • Per creare un provider di crittografia è necessaria l'autorizzazione CONTROL SERVER o l'appartenenza al ruolo predefinito del server sysadmin .

  • Per modificare un'opzione di configurazione ed eseguire l'istruzione RECONFIGURE , è necessaria l'autorizzazione a livello di server ALTER SETTINGS . L'autorizzazione ALTER SETTINGS è assegnata implicitamente ai ruoli predefiniti del server sysadmin e serveradmin .

  • Per creare le credenziali è necessaria l'autorizzazione ALTER ANY CREDENTIAL .

  • Per aggiungere le credenziali a un account di accesso è necessaria l'autorizzazione ALTER ANY LOGIN .

  • Per creare una chiave asimmetrica è necessaria l'autorizzazione CREATE ASYMMETRIC KEY .

Come posso cambiare la directory predefinita di Microsoft Entra in modo che l'insieme di credenziali delle chiavi venga creato nella stessa sottoscrizione e nella stessa directory dell'entità servizio che ho creato per il Connettore SQL Server?

Screenshot che mostra i passaggi per la modifica della directory predefinita di Microsoft Entra ID nella Guida.

  1. Vai al portale di Azure.

  2. Selezionare l'icona Impostazioni nell'angolo superiore destro della pagina o nel profilo utente.

  3. Nella pagina Directory e sottoscrizioni, selezionare Tutti gli elenchi per visualizzare tutti gli elenchi di Microsoft Entra a cui si appartiene.

  4. È possibile modificare l'elenco di avvio o passare a un elenco diverso se ne sono presenti più di uno.

    Nota

    È possibile che non si disponga delle autorizzazioni per modificare effettivamente la directory predefinita nella sottoscrizione di Azure. In questo caso, crea l'entità servizio di Microsoft Entra all'interno della tua directory predefinita, in modo che si trovi nella stessa directory di Azure Key Vault utilizzato successivamente.

Per ulteriori informazioni su Microsoft Entra ID, vedere In che modo le sottoscrizioni di Azure sono collegate a Microsoft Entra ID.

C. Spiegazione dei codici di errore per Connettore SQL Server

Nota

Anche se Microsoft Entra ID è il nuovo nome per Azure Active Directory (Azure AD), per evitare l'interruzione degli ambienti esistenti, la denominazione Azure AD è tuttora mantenuta in alcuni elementi hardcoded, ad esempio campi dell'interfaccia utente, provider di connessioni, codici errore e cmdlet. All’interno di questo articolo i due nomi vengono utilizzati in modo intercambiabile.

Codici di errore del provider:

Codice errore Simbolo Descrizione
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.

Se il codice di errore non viene visualizzato in questa tabella, ecco alcuni altri motivi per cui l'errore può verificarsi:

  • È possibile che non si abbia accesso a Internet e non sia possibile accedere ad Azure Key Vault. Verificare la connessione Internet.

  • Il servizio Azure Key Vault potrebbe essere inattivo. Esaminare azure.status.microsoft. Riprovare in un altro momento.

  • È possibile che sia stata eliminata la chiave asimmetrica da Azure Key Vault o SQL Server. Ripristinare la chiave.

  • Se viene visualizzato l'errore "Impossibile caricare il catalogo", verificare che sia installata la versione di Visual Studio C++ Redistributable appropriata in base alla versione di SQL Server in esecuzione. La tabella seguente specifica la versione da installare dall'Area download Microsoft.

Nel registro eventi di Windows vengono inoltre registrati gli errori associati al Connettore SQL Server e questo può essere utile per avere maggiori informazioni sul motivo per cui si sta verificando l'errore. L'origine nel log eventi dell'applicazione di Windows sarà "Connettore SQL Server per Azure Key Vault".

Cataloghi di runtime C++ per Connettore SQL Server 1.0.5.0

Versione di SQL Server Collegamento per l'installazione di Redistributable se si usa il Connettore SQL Server 1.0.5.0
2008, 2008 R2, 2012, 2014 Visual C++ Redistributable Pacchetti per Visual Studio 2013
2016, 2017, 2019 Visual C++ Redistributable per Visual Studio 2015

Cataloghi di runtime C++ per Connettore SQL Server 1.0.4.0

Versione di SQL Server Collegamento per l'installazione di Redistributable se si usa il Connettore SQL Server 1.0.4.0
2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 Pacchetti ridistribuibili di Visual C++ per Visual Studio 2013

Riferimenti aggiuntivi

Altre informazioni su Extensible Key Management:

Crittografie di SQL che supportano EKM:

Comandi Transact-SQL correlati:

Documentazione di Azure Key Vault