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
- Interrompa o serviço do SQL Server usando do SQL Server Configuration Manager.
- Desinstale a versão antiga usando o Painel de Controle >Programas>Programas e Recursos.
- Nome do aplicativo: Conector do SQL Server para Microsoft Azure Key Vault
- Versão: 15.0.300.96 (ou anterior)
- Data do arquivo DLL: 30 de janeiro de 2018 (ou mais antigo)
- Instale (atualize) o novo Conector do SQL Server para o Microsoft Azure Key Vault.
- Versão: 15.0.2000.440
- Data do arquivo DLL: 9 de novembro de 2024
- Inicie o serviço do SQL Server.
- Os bancos de dados criptografados de teste são acessíveis.
Reversão
Interrompa o serviço do SQL Server usando do SQL Server Configuration Manager.
Desinstale a nova versão usando Painel de Controle>Programas>Programas e Recursos.
- Nome do aplicativo: Conector do SQL Server para Microsoft Azure Key Vault
- Versão: 15.0.2000.440
- Data do arquivo DLL: 9 de novembro de 2024
Instale a versão antiga do Conector do SQL Server para o Microsoft Azure Key Vault.
- Versão: 15.0.300.96
- Data do arquivo DLL: 30 de janeiro de 2018
Inicie o serviço do SQL Server.
Verifique se os bancos de dados que usam TDE estão acessíveis.
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
- Atual: 1.0.5.0 (versão 15.0.2000.440) – Data do arquivo 09 de novembro de 2024
- 1.0.5.0 (versão 15.0.2000.440) – Data do arquivo 24 de novembro de 2020
- 1.0.5.0 (versão 15.0.300.96) – Data do arquivo: 30 de janeiro de 2018
- 1.0.4.0: (versão 13.0.811.168)
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 servidorALTER SETTINGS
. A permissãoALTER 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?
Acesse o portal do Azure.
No canto superior direito da página, selecione o ícone Configurações ou o seu perfil de usuário.
Na página Diretórios + assinaturas, selecione Todos os Diretórios para ver todos os diretórios do Microsoft Entra aos quais você pertence.
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:
Referência dos Cmdlets do Cofre de Chaves do Azure do PowerShell
Conteúdo relacionado
- gerenciamento extensível de chaves usando o SQL Server (Azure Key Vault)
- Usar o Conector do SQL Server com recursos de criptografia do SQL
- provedor EKM habilitado (opção de configuração do servidor)
- Configurar o Gerenciamento Extensível de Chaves TDE do SQL Server usando o Azure Key Vault
- Para ver mais scripts de exemplo, confira o blog em Transparent Data Encryption e Gerenciamento Extensível de Chaves do SQL Server com o Azure Key Vault