Compartilhar via


Manutenção e solução de problemas do conector do SQL Server

Aplica-se:SQL Server

Informações complementares sobre o Conector do SQL Server são fornecidas neste tópico. Para obter mais informações sobre o conector do SQL Server, consulte Gerenciamento extensível de chaves usando odo Azure Key Vault (SQL Server), configurar o gerenciamento extensível de chaves TDE do SQL Server usando o Azure Key Vaulte usar o Conector do SQL Server com recursos de criptografia SQL.

Observação

Embora o Microsoft Entra ID seja o novo nome do Azure Active Directory (Azure AD), para evitar a interrupção de ambientes existentes, o Azure AD ainda permanecerá em alguns elementos codificados, como campos de interface do usuário, provedores de conexão, códigos de erro e cmdlets. Neste artigo, os dois nomes são intercambiáveis.

R. Instruções de manutenção do Conector do SQL Server

Rotação de chaves

O Azure Key Vault dá suporte à rotação de chaves, que é o processo de criar uma nova chave e atualizar os aplicativos para usar a nova chave. A rotação de chaves é uma prática recomendada de segurança que ajuda a proteger os dados caso a chave seja comprometida. O SQL Server Connector oferece suporte à rotação de chaves. As chaves antigas não devem ser excluídas, pois pode ser necessário restaurar um banco de dados usando uma chave antiga. Para rotacionar uma chave, siga as etapas em Rotacionar chave assimétrica com uma nova chave AKV ou uma nova versão de chave AKV.

Atualização do Conector do SQL Server

Versões 1.0.0.440 e anteriores foram substituídas e não têm mais suporte em ambientes de produção. Há suporte para versões 1.0.1.0 e mais recentes em ambientes de produção. Use as instruções a seguir para atualizar para a última versão disponível no Centro de Download da Microsoft.

Atualizar

  1. Interrompa o serviço do SQL Server usando do SQL Server Configuration Manager.
  2. Desinstale a versão antiga usando o Painel de Controle >Programas>Programas e Recursos.
    1. Nome do aplicativo: Conector do SQL Server para Microsoft Azure Key Vault
    2. Versão: 15.0.300.96 (ou anterior)
    3. Data do arquivo DLL: 30 de janeiro de 2018 (ou mais antigo)
  3. Instale (atualize) o novo Conector do SQL Server para o Microsoft Azure Key Vault.
    1. Versão: 15.0.2000.440
    2. Data do arquivo DLL: 9 de novembro de 2024
  4. Inicie o serviço do SQL Server.
  5. Os bancos de dados criptografados de teste são acessíveis.

Reversão

  1. Interrompa o serviço do SQL Server usando do SQL Server Configuration Manager.

  2. Desinstale a nova versão usando Painel de Controle>Programas>Programas e Recursos.

    1. Nome do aplicativo: Conector do SQL Server para Microsoft Azure Key Vault
    2. Versão: 15.0.2000.440
    3. Data do arquivo DLL: 9 de novembro de 2024
  3. Instale a versão antiga do Conector do SQL Server para o Microsoft Azure Key Vault.

    1. Versão: 15.0.300.96
    2. Data do arquivo DLL: 30 de janeiro de 2018
  4. Inicie o serviço do SQL Server.

  5. Verifique se os bancos de dados que usam TDE estão acessíveis.

  6. Depois de validar se a atualização funciona, você pode excluir a pasta antiga do SQL Server Connector (se você optar por renomeá-la em vez de desinstalar na Etapa 3).

Versões anteriores do Conector do SQL Server

Links profundos para versões anteriores do Conector do SQL Server

Substituindo a entidade de serviço SQL Server

O SQL Server usa entidades de serviço criadas no Microsoft Entra ID (anteriormente Azure Active Directory) como credenciais para acessar o Cofre de Chaves. A entidade de serviço tem uma ID do Cliente e uma Chave de Autenticação. Uma credencial do SQL Server é configurada com o VaultName, a ID do cliente e a Chave de Autenticação. A Chave de Autenticação é válida por determinado período (um ou dois anos). Antes que o período expire, uma nova chave deve ser gerada no Microsoft Entra ID para o principal de serviço. Em seguida, a credencial deve ser alterada no SQL Server. O Management Studio mantém um cache de credencial na sessão atual, portanto, quando uma credencial é alterada, o Management Studio deve ser reiniciado.

Suporte à Identidade Gerenciada para SQL Server na VM do Azure

A partir da Atualização Cumulativa 17 (CU17) do SQL Server 2022, o suporte para identidades gerenciadas do Microsoft Entra foi adicionado ao Gerenciamento Extensível de Chaves (EKM) com Azure Key Vault (AKV) e Módulos de Segurança de Hardware Gerenciado (HSM) no SQL Server em VMs do Azure (somente Windows). Para obter mais informações, confira suporte à Identidade Gerenciada para Gerenciamento extensível de chaves com o Azure Key Vault. Para usar identidades gerenciadas com o Conector do SQL Server, a versão do conector deve ser 1.0.5.0 de novembro de 2024 ou posterior a esta data. Baixe a versão mais recente do Microsoft Download Center.

Backup e Recuperação de Chaves

O backup do cofre de chaves deve ser feito regularmente. Se uma chave assimétrica no cofre for perdida, ela poderá ser restaurada do backup. A chave deve ser restaurada usando o mesmo nome de antes, o que o comando Restore PowerShell faz (veja as etapas abaixo).

Se o cofre tiver sido perdido, recrie um cofre e restaure a chave assimétrica para o cofre usando o mesmo nome de antes. O nome do cofre pode ser diferente (ou o mesmo de antes). Defina as permissões de acesso no novo cofre para conceder à entidade de serviço do SQL Server o acesso necessário para os cenários de criptografia do SQL Server e ajuste a credencial do SQL Server para que o nome do novo cofre seja refletido.

Resumindo, estas são as etapas:

  • Fazer backup do cofre de chaves (usando o cmdlet do PowerShell Backup-AzureKeyVaultKey).
  • Em caso de falha do cofre, crie um cofre na mesma região geográfica. O usuário que está criando o cofre deve estar no mesmo diretório padrão que a instalação da entidade de serviço para SQL Server.
  • Restaure a chave para o novo cofre usando o cmdlet do PowerShell Restore-AzureKeyVaultKey, que restaura a chave usando o mesmo nome de antes. Se já houver uma chave com o mesmo nome, a restauração falhará.
  • Conceder permissões para a entidade de serviço do SQL Server usar esse novo cofre.
  • Modificar a credencial do SQL Server usada pelo Mecanismo de Banco de Dados para refletir o nome do novo cofre (se necessário).

Backups de chaves podem ser restaurados em regiões do Azure, desde que eles permaneçam na mesma região geográfica ou nuvem nacional: EUA, Canadá, Japão, Austrália, Índia, APAC, Europa, Brasil, China, Governo dos EUA ou Alemanha.

B. Perguntas frequentes

No Cofre de Chaves do Azure

Como funcionam as operações de chave com o Cofre de Chaves do Azure?

A chave assimétrica no cofre de chave é usada para proteger chaves de criptografia do SQL Server. Somente a parte pública da chave assimétrica nunca deixa o cofre, a parte particular nunca é exportada pelo cofre. Todas as operações de criptografia usando a chave assimétrica são feitas no serviço do Azure Key Vault e são protegidas pela segurança do serviço.

O que é um URI de chave?

Cada chave no Cofre de Chaves do Azure tem um URI (Uniform Resource Identifier), que pode ser usado para fazer referência à chave em seu aplicativo. Use o formato https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey para obter a versão atual e use o formato https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87 para obter uma versão específica.

Sobre Configurar o SQL Server

Quais são os pontos de extremidade aos quais o Conector do SQL Server precisa de acesso?

O Conector se comunica com dois pontos de extremidade que precisam ser permitidos. A única porta necessária para comunicação de saída com esses outros serviços é 443 para HTTPS:

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

Além disso, verificar a lista de revogação de certificado pode criar tráfego HTTP na porta 80.

Observação

Usar o Conector do SQL Server para Azure Key Vault atrás de um firewall ou servidor proxy pode afetar o desempenho se o tráfego for atrasado ou bloqueado. Familiarize-se com Acesso do Azure Key Vault atrás de um firewall para garantir que as regras corretas estejam em vigor.

Como fazer para se conectar ao Azure Key Vault por meio de um servidor proxy HTTP(S)? O Conector usa as definições de configuração de proxy do Internet Explorer. Essas configurações podem ser controladas por meio da Política de Grupo ou por meio do Registro, mas é importante observar que elas não são configurações de todo o sistema e precisarão ser direcionadas para a conta de serviço que executa a instância do SQL Server. Se Administradores de Banco de Dados exibirem ou editarem as configurações no Internet Explorer, elas só afetarão as contas dos Administradores de Banco de Dados em vez do mecanismo do SQL Server. Não é recomendável fazer logon no servidor de maneira interativa usando a conta de serviço. Isso é bloqueado em muitos ambientes seguros. As alterações nas configurações de proxy definidas podem exigir a reinicialização da instância do SQL Server para entrarem em vigor, pois elas são armazenadas em cache quando o Conector tenta se conectar a um cofre de chaves pela primeira vez.

Quais tamanhos de chave no Azure Key Vault são compatíveis com o Conector do SQL Server? A compilação mais recente do Conector do SQL Server dá suporte às chaves do Azure Key Vault de tamanhos 2048 e 3072.

Observação

A exibição do sistema sys.asymmetric_keys retorna o tamanho da chave como 2048, mesmo se o tamanho da chave 3072 for usado.

Quais são os níveis de permissão mínimos necessários para cada etapa da configuração no SQL Server?

Embora você possa executar todas as etapas de configuração como um membro da função de servidor fixa sysadmin, a Microsoft incentiva você a minimizar as permissões utilizadas. A lista a seguir define o nível mínimo de permissão para cada ação.

  • Para criar um provedor criptográfico, é necessária a permissão CONTROL SERVER ou associação na função de servidor fixa sysadmin .

  • Para alterar uma opção de configuração e executar a instrução RECONFIGURE , é necessário ter a permissão de nível de servidor ALTER SETTINGS . A permissão ALTER SETTINGS é implicitamente mantida pelas funções de servidor fixas sysadmin e serveradmin .

  • Para criar uma credencial, é exigida uma permissão ALTER ANY CREDENTIAL .

  • Para adicionar uma credencial a um logon, é necessária a permissão ALTER ANY LOGIN .

  • Para criar uma chave assimétrica, é exigida uma permissão CREATE ASYMMETRIC KEY .

Como posso alterar meu diretório padrão do Microsoft Entra para que o cofre de chaves seja criado na mesma assinatura e o diretório como a entidade de serviço que criei para o Conector do SQL Server?

Captura de tela mostrando as etapas de ajuda para alterar o diretório padrão do Microsoft Entra ID.

  1. Acesse o portal do Azure.

  2. No canto superior direito da página, selecione o ícone Configurações ou o seu perfil de usuário.

  3. Na página Diretórios + assinaturas, selecione Todos os Diretórios para ver todos os diretórios do Microsoft Entra aos quais você pertence.

  4. Você pode alterar o diretório de inicialização ou alternar para um diretório diferente se tiver vários diretórios.

    Observação

    Talvez você não tenha permissões para alterar o diretório padrão em sua assinatura do Azure. Nesse caso, crie a entidade de serviço do Microsoft Entra no diretório padrão para que ela esteja no mesmo diretório que o Azure Key Vault que será usado mais tarde.

Para saber mais sobre o Microsoft Entra ID, leia Como as assinaturas do Azure estão relacionadas ao Microsoft Entra ID.

C. Explicações de código de erro do SQL Server Connector

Observação

Embora o Microsoft Entra ID seja o novo nome do Azure Active Directory (Azure AD), para evitar a interrupção de ambientes existentes, o Azure AD ainda permanecerá em alguns elementos codificados, como campos de interface do usuário, provedores de conexão, códigos de erro e cmdlets. Neste artigo, os dois nomes são intercambiáveis.

Códigos de erro do provedor:

Código do erro Símbolo Descrição
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.
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 você não vir seu código de erro nesta tabela, aqui estão alguns outros motivos pelos quais o erro pode acontecer:

  • Talvez você não tenha acesso à Internet e não possa acessar o Azure Key Vault. Verifique a sua conexão com a Internet.

  • O serviço do Azure Key Vault pode estar inoperante. Examine azure.status.microsoft. Tente novamente em outro momento.

  • Você pode ter removido a chave assimétrica do Azure Key Vault ou do SQL Server. Restaure a chave.

  • Se você receber um erro "Não é possível carregar a biblioteca", verifique se você tem a versão apropriada do Visual Studio C++ Redistributable instalada com base na versão do SQL Server que está sendo executada. A tabela a seguir especifica qual versão instalar do Centro de Download da Microsoft.

O log de eventos do Windows também registra em log os erros associados ao Conector do SQL Server, que podem ajudar oferecendo um contexto adicional sobre o motivo real do erro. A origem no Log de Eventos do Aplicativo do Windows será "Conector do SQL Server para Microsoft Azure Key Vault".

Bibliotecas do C++ Runtime para Conector do SQL Server 1.0.5.0

Versão do SQL Server Link de instalação redistribuível se estiver usando o Conector do SQL Server 1.0.5.0
2008, 2008 R2, 2012, 2014 Pacotes Redistribuíveis do Visual C++ para o Visual Studio 2013
2016, 2017, 2019 Pacotes Redistribuíveis do Visual C++ para Visual Studio 2015

Bibliotecas do C++ Runtime para Conector do SQL Server 1.0.4.0

Versão do SQL Server Link de instalação redistribuível se estiver usando o Conector do SQL Server 1.0.4.0
2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 Pacotes Redistribuíveis do Visual C++ para o Visual Studio 2013

Referências adicionais

Mais sobre o Gerenciamento Extensível de Chaves:

Criptografias de SQL com suporte ao EKM:

Comandos Transact-SQL relacionados:

Documentação do Cofre de Chaves do Azure: