Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
En este artículo se proporciona información adicional acerca del conector de SQL Server. Para más información sobre el conector de SQL Server, consulte Administración extensible de claves mediante Azure Key Vault (SQL Server), Configuración de la administración extensible de claves de TDE de SQL Server mediante Azure Key Vault y Uso del conector de SQL Server con características de cifrado de SQL.
Nota
Aunque Microsoft Entra ID es el nuevo nombre de Azure Active Directory (Azure AD), para evitar interrumpir los entornos existentes, Azure AD sigue estando en algunos elementos codificados de forma rígida como campos de interfaz de usuario, proveedores de conexiones, códigos de error y cmdlets. En este artículo, los dos nombres son intercambiables.
A. Instrucciones de mantenimiento para el conector de SQL Server
Rotación de claves
Azure Key Vault admite la rotación de claves, que es el proceso de creación de una nueva clave y actualización de las aplicaciones para utilizar la nueva clave. La rotación de claves es un procedimiento recomendado de seguridad que ayuda a proteger los datos en caso de que la clave esté en peligro. El Conector de SQL Server admite la rotación de claves. Las claves antiguas no se deben eliminar, ya que es posible que sea necesario restaurar una base de datos mediante una clave antigua. Para rotar una clave, siga los pasos descritos en Rotación de la clave asimétrica con una nueva clave de AKV o una nueva versión de clave de AKV.
Actualización del conector de SQL Server
Las versiones 1.0.0.440 y anteriores se han reemplazado y ya no se admiten en entornos de producción. Las versiones 1.0.1.0 y posteriores se admiten en los entornos de producción. Use las instrucciones siguientes para actualizar a la versión más reciente disponible en el Centro de descarga de Microsoft.
Actualizar
- Detenga el servicio SQL Server mediante el Administrador de configuración de SQL Server.
- Desinstale la versión anterior mediante el Panel de control>Programas>y características.
- Nombre de aplicación: Conector de SQL Server para Microsoft Azure Key Vault
- Versión: 15.0.300.96 (o anterior)
- Fecha del archivo DLL: 30 de enero de 2018 (o anterior)
- Instale (actualizar) el nuevo conector de SQL Server para Microsoft Azure Key Vault.
- Versión 15.0.2000.440+
- Fecha del archivo DLL: 9 de noviembre de 2024
- Inicie el servicio SQL Server.
- Se puede acceder a las bases de datos cifradas de prueba.
Si la base de datos está en un RECOVERY PENDING estado, debe ejecutar un ALTER comando en el proveedor criptográfico. Reemplace AzureKeyVault_EKM por el nombre de su proveedor criptográfico real, que puede encontrar en la vista de sistema sys.cryptographic_providers.
ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM DISABLE;
ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll';
ALTER CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM ENABLE;
Reinicie el servicio SQL Server después de modificar el proveedor criptográfico.
Reversión
Detenga el servicio SQL Server mediante el Administrador de configuración de SQL Server.
Desinstale la nueva versión usando el Panel de control>Programas>Programas y características.
- Nombre de aplicación: Conector de SQL Server para Microsoft Azure Key Vault
- Versión 15.0.2000.440+
- Fecha del archivo DLL: 9 de noviembre de 2024
Instale la versión anterior del conector de SQL Server para Microsoft Azure Key Vault.
- Versión 15.0.300.96
- Fecha del archivo DLL: 30 de enero de 2018
Inicie el servicio SQL Server.
Compruebe que las bases de datos que usan TDE son accesibles.
Después de validar que la actualización funciona, puede eliminar la carpeta anterior del conector de SQL Server (si eligió cambiarle el nombre en lugar de desinstalarla en el paso 3).
Versiones anteriores del Conector de SQL Server
Vínculos profundos a versiones anteriores del Conector de SQL Server
- Actual: 1.0.5.0 (versión 15.0.2000.440); fecha de archivo: 09 de noviembre de 2024
- 1.0.5.0 (versión 15.0.2000.440) – Fecha de archivo: 24 de noviembre de 2020
- 1.0.5.0 (versión 15.0.300.96); fecha de archivo del 30 de enero de 2018
- 1.0.4.0: (versión 13.0.811.168)
Puesta en marcha de la entidad de servicio de SQL Server
SQL Server usa entidades de servicio creadas en Microsoft Entra ID (anteriormente, Azure Active Directory) como credenciales para acceder al almacén de claves. La entidad de servicio tiene un id. de cliente y clave de autenticación. Una credencial de SQL Server se configura con el nombre de almacén, el identificador de cliente y la clave de autenticación. La clave de autenticación es válida durante un determinado período de tiempo (uno o dos años). Antes de que expire el período de tiempo, se debe generar una nueva clave en Microsoft Entra ID para la entidad de servicio. Después, la credencial debe cambiarse en SQL Server. Management Studio mantiene una caché para la credencial en la sesión actual, por lo que cuando se cambia una credencial, Management Studio se debe reiniciar.
Compatibilidad de identidad administrada con SQL Server en máquinas virtuales de Azure
A partir de la actualización acumulativa 17 (CU17) de SQL Server 2022, las identidades administradas de Microsoft Entra se admiten para la administración extensible de claves (EKM) con Azure Key Vault (AKV) y módulos de seguridad de hardware administrados (HSM) en SQL Server en máquinas virtuales de Azure (solo Windows). Para más información, consulte Compatibilidad con identidades administradas para gestión extensible de claves con Azure Key Vault. Para usar identidades administradas con el conector de SQL Server, la versión del conector debe ser 1.0.5.0 de noviembre de 2024 o posterior. Descargue la versión más reciente del Centro de Descargas de Microsoft .
Copia de seguridad y recuperación de claves
Se debe realizar una copia de seguridad del almacén de claves con cierta frecuencia. Si se pierde una clave asimétrica en el almacén, se puede restaurar desde la copia de seguridad. La clave debe restaurarse con el mismo nombre que antes, que es lo que hace el comando de PowerShell Restore (consulta los pasos siguientes).
Si el almacén se ha perdido, vuelva a crear un almacén y restaurar la clave asimétrica en el almacén usando el mismo nombre que antes. El nombre del almacén puede ser diferente (o el mismo que antes). Debe establecer los permisos de acceso en el nuevo almacén para conceder a la entidad de servicio de SQL Server el acceso necesario a los escenarios de cifrado de SQL Server y ajustar la credencial de SQL Server para que se refleje el nuevo nombre del almacén.
En resumen, estos son los pasos:
- Realice una copia de seguridad de la clave del almacén (con el cmdlet de PowerShell Backup-AzureKeyVaultKey).
- En caso de error del almacén, cree un nuevo almacén en la misma región geográfica. El usuario que crea el almacén debería estar en el mismo directorio predeterminado que el programa de instalación de la entidad de servicio para SQL Server.
- Restaure la clave en el nuevo almacén mediante el cmdlet Restore-AzureKeyVaultKey de PowerShell, que restaura la clave con el mismo nombre que antes. Si ya existe una clave con el mismo nombre, se producirá un error en la restauración.
- Conceda permisos a la entidad de servicio de SQL Server para que use este nuevo almacén.
- Modifique la credencial de SQL Server que usa el motor de base de datos para reflejar el nuevo nombre de almacén (si es necesario).
Se pueden restaurar las copias de seguridad de claves en regiones de Azure, siempre y cuando permanezcan en la misma región geográfica o nube nacional: Estados Unidos, Canadá, Japón, Australia, India, APAC, Brasil y Europa, China, US Gov o Alemania.
B. Preguntas más frecuentes
En el Almacén de claves de Azure
¿Cómo funcionan las operaciones de clave con el Almacén de claves de Azure?
La clave asimétrica en el Almacén de claves se usa para proteger las claves de cifrado de SQL Server. La parte pública de la clave asimétrica es la única que sale del almacén: el almacén no exporta nunca la parte privada. Todas las operaciones de cifrado en las que se usa la clave asimétrica se realizan en el servicio Azure Key Vault y se protegen con la seguridad del servicio.
¿Qué es un URI de clave?
Todas las claves del Almacén de claves de Azure tienen un identificador uniforme de recursos, (URI), que se puede usar para hacer referencia a la clave en la aplicación. Use el formato https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey para obtener la versión actual y el formato https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87 para obtener una versión específica.
Configurar SQL Server
¿Cuáles son los puntos de conexión a los que necesita acceder el conector de SQL Server?
El conector se comunica con dos puntos de conexión, que deben estar permitidos. El único puerto necesario para la comunicación saliente con estos otros servicios es 443 para HTTPS:
login.microsoftonline.com/*:443*.vault.azure.net/*:443
Además, comprobar la lista de revocación de certificados podría crear tráfico HTTP en el puerto 80.
Nota
El uso del conector de SQL Server para Azure Key Vault detrás de un firewall o servidor proxy puede afectar al rendimiento si el tráfico se retrasa o bloquea. Familiarícese con Access Azure Key Vault detrás de un firewall para asegurarse de que se han implementado las reglas correctas.
¿Cómo conectarse a Azure Key Vault a través de un servidor proxy HTTP(S)? El conector usa la configuración de proxy de Internet Explorer. Esta configuración se puede controlar por medio de la directiva de grupo o el registro, pero es importante tener en cuenta que no son opciones de configuración de todo el sistema y deben estar destinadas a la cuenta de servicio que ejecuta la instancia de SQL Server. Si un administrador de bases de datos ve o edita la configuración en Internet Explorer, solo afectará a la cuenta del administrador de la base de datos en lugar del motor de SQL Server. No se recomienda iniciar sesión en el servidor de forma interactiva mediante la cuenta de servicio; esta opción está bloqueada en muchos entornos seguros. Los cambios en la configuración de proxy configurado pueden requerir que se reinicie la instancia de SQL Server para que surtan efecto, ya que se almacenan en caché cuando el conector intenta conectarse por primera vez a un almacén de claves.
¿Qué tamaños de clave de Azure Key Vault son compatibles con el Conector de SQL Server? La última compilación del Conector de SQL Server admite claves de Azure Key Vault de los tamaños 2048 y 3072.
Nota
La sys.asymmetric_keys vista del sistema devuelve el tamaño de la clave como 2048 incluso si se usa el tamaño de clave 3072.
¿Cuáles son los niveles de permiso mínimos necesarios para cada paso de configuración en SQL Server?
Aunque puede realizar todos los pasos de configuración como miembro del rol fijo de servidor sysadmin, Microsoft le anima a minimizar los permisos que usa. En la lista siguiente se define el nivel de permiso mínimo para cada acción.
Para crear un proveedor de servicios criptográficos, son necesarios el permiso
CONTROL SERVERo la pertenencia al rol fijo de servidor sysadmin .Para cambiar una opción de configuración y ejecutar la instrucción de
RECONFIGURE, debe tener concedido el permisoALTER SETTINGSde nivel de servidor. Los roles fijos de servidor sysadmin yALTER SETTINGSserveradmin tienen el permiso de forma implícita.Para cread una credencial, necesita el permiso
ALTER ANY CREDENTIAL.Para agregar una credencial a un inicio de sesión, necesita el permiso
ALTER ANY LOGIN.Para crear una clave asimétrica, necesita el permiso
CREATE ASYMMETRIC KEY.
¿Cómo puedo cambiar el directorio de Microsoft Entra predeterminado para que mi almacén de claves se cree en la misma suscripción y directorio de la entidad de servicio que creé para el Conector de SQL Server?
Vaya a Azure Portal.
Seleccione el icono Configuración en la esquina superior derecha de la página.
En la página Directorios y suscripciones, selecciona Todos los directorios para ver todos los directorios de Microsoft Entra a los que pertenece.
Puede cambiar el directorio de inicio o cambiar a otro directorio si tiene varios directorios.
Nota
Es posible que no tenga permisos para cambiar realmente el directorio predeterminado en la suscripción de Azure. En este caso, crea la entidad de servicio de Microsoft Entra dentro del directorio predeterminado para que esté en el mismo directorio que Azure Key Vault que se usará más adelante.
Para obtener más información sobre Microsoft Entra ID, consulta Cómo están relacionadas las suscripciones de Azure con Microsoft Entra ID.
C. Explicaciones de código de error para el conector de SQL Server
Nota
Aunque Microsoft Entra ID es el nuevo nombre de Azure Active Directory (Azure AD), para evitar interrumpir los entornos existentes, Azure AD sigue estando en algunos elementos codificados de forma rígida como campos de interfaz de usuario, proveedores de conexiones, códigos de error y cmdlets. En este artículo, los dos nombres son intercambiables.
Códigos de error del proveedor:
| Código de error | Símbolo | Descripción |
|---|---|---|
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. |
Si no ve el código de error en esta tabla, estos son otros motivos por los que puede producirse el error:
Es posible que no tenga acceso a Internet y no pueda acceder a Azure Key Vault. Compruebe la conexión a Internet.
El servicio Azure Key Vault podría estar inactivo. Revise azure.status.microsoft. Vuelva a intentarlo en otro momento.
Es posible que haya quitado la clave asimétrica de Azure Key Vault o SQL Server. Restaure la clave.
Si recibes un error de «No se puede cargar la biblioteca», asegúrate de tener la versión adecuada de Visual Studio C++ Redistribuible instalada en función de la versión de SQL Server que estás ejecutando. En la tabla siguiente se especifica la versión que se va a instalar desde el Centro de descarga de Microsoft.
El registro de eventos de Windows también registra los errores asociados con el Conector de SQL Server, lo que puede ayudar proporcionando contexto adicional sobre el motivo por el que se produce el error. El origen del registro de eventos de la aplicación Windows será "Conector de SQL Server para Microsoft Azure Key Vault".
Bibliotecas en tiempo de ejecución de C++ para el conector de SQL Server 1.0.5.0
| Versión de SQL Server | Vínculo de instalación redistribuible si usa el conector de SQL Server 1.0.5.0 |
|---|---|
| 2008, 2008 R2, 2012, 2014 | Paquetes redistribuibles de Visual C++ para Visual Studio 2013 |
| 2016, 2017, 2019 | Visual C++ Redistributable para Visual Studio 2015 |
Bibliotecas en tiempo de ejecución de C++ para el conector de SQL Server 1.0.4.0
| Versión de SQL Server | Vínculo de instalación redistribuible si usa el conector de SQL Server 1.0.4.0 |
|---|---|
| 2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 | Paquetes redistribuibles de Visual C++ para Visual Studio 2013 |
Referencias adicionales
Más información acerca de la Administración extensible de claves:
Cifrados de SQL compatibles con EKM:
Comandos de Transact-SQL relacionados:
Documentación del Almacén de claves de Azure:
Referencia de cmdlets del Almacén de claves de Azure de PowerShell
Contenido relacionado
- Administración extensible de claves con Azure Key Vault (SQL Server)
- Usar el conector de SQL Server con características de cifrado de SQL
- Proveedor EKM habilitado (opción de configuración del servidor)
- Configuración de Administración extensible de claves de TDE de SQL Server mediante Azure Key Vault
- Para obtener otros scripts de ejemplo, vea el blog en Cifrado de datos transparente de SQL Server y administración extensible de claves con Azure Key Vault.