Résolution des problèmes et maintenance du connecteur SQL Server
S'applique à : SQL Server
Des informations supplémentaires sur le connecteur SQL Server sont fournies dans cet article. Pour plus d’informations sur le connecteur SQL Server, consultez Gestion de clés extensible à l’aide d’Azure Key Vault (SQL Server), Étapes de la configuration de la gestion de clés extensible à l’aide d’Azure Key Vault et Utiliser le connecteur SQL Server avec les fonctionnalités de chiffrement SQL.
Remarque
Bien que Microsoft Entra ID soit le nouveau nom d’Azure Active Directory (Azure AD) pour empêcher l’interruption des environnements existants, Azure AD reste toujours dans certains éléments codés en dur, tels que les champs d’interface utilisateur, les fournisseurs de connexions, les codes d’erreur et cmdlets. Dans cet article, les deux noms sont interchangeables.
A. Instructions de maintenance du connecteur SQL Server
Rotation des clés
Azure Key Vault prend en charge la rotation des clés, à savoir le processus de création d’une clé et de mise à jour des applications pour utiliser la nouvelle clé. La rotation des clés est une bonne pratique de sécurité permettant de protéger les données au cas où la clé serait compromise. Le connecteur SQL Server prend en charge la rotation des clés. Les anciennes clés ne doivent pas être supprimées, car elles peuvent être nécessaires pour restaurer une base de données. Pour faire pivoter une clé, suivez les étapes décrites dans Rotation d’une clé asymétrique avec une nouvelle clé AKV ou une nouvelle version de clé AKV.
Mise à niveau du connecteur SQL Server
Les versions 1.0.0.440 et antérieures ont été remplacées et ne sont plus prises en charge dans les environnements de production. Les versions 1.0.1.0 et les versions antérieures ne sont pas prises en charge dans les environnements de production. Utilisez les instructions suivantes pour effectuer une mise à niveau vers la dernière version disponible sur le Centre de téléchargement Microsoft.
Mettre à jour
- Arrêter le service SQL Server à l’aide du Gestionnaire de configuration SQL Server
- Désinstaller l’ancienne version à l’aide de Panneau de configuration\Programmes\Programmes et fonctionnalités
- Nom d’application :Connecteur SQL Server pour Microsoft Azure Key Vault
- Version : 15.0.300.96 (ou version antérieure)
- Date du fichier DLL : 30/01/2018 (ou plus ancien)
- Installer (mettre à niveau) le nouveau connecteur SQL Server pour Microsoft Azure Key Vault
- Version : 15.0.2000.440
- Date du fichier DLL : 11/09/2020
- Démarrer le service SQL Server
- Tester l’accessibilité des bases de données chiffrées
Restauration
Arrêter le service SQL Server à l’aide du Gestionnaire de configuration SQL Server
Désinstaller la nouvelle version à l’aide de Panneau de configuration\Programmes\Programmes et fonctionnalités
- Nom d’application :Connecteur SQL Server pour Microsoft Azure Key Vault
- Version : 15.0.2000.440
- Date du fichier DLL : 24/11/2020
Installer l’ancienne version du connecteur SQL Server pour Microsoft Azure Key Vault
- Version : 15.0.300.96
- Date du fichier DLL : 30/01/2018
Démarrer le service SQL Server
Vérifier que les bases de données qui utilisent le chiffrement TDE sont accessibles
Après avoir vérifié que la mise à jour fonctionne, vous pouvez supprimer le dossier de l’ancien connecteur SQL Server (si vous avez choisi de le renommer au lieu de le désinstaller à l’étape 3)
Versions antérieures du connecteur SQL Server
Liens ciblés vers les versions antérieures du connecteur SQL Server
- Version actuelle : 1.0.5.0 (version 15.0.2000.440) – Date du fichier 24 novembre 2020
- 1.0.5.0 (version 15.0.300.96) – Date de fichier du 30 janvier 2018
- 1.0.4.0 : (version 13.0.811.168)
Modification du principal du service SQL Server
SQL Server utilise des principaux de service créés dans Microsoft Entra ID (anciennement Azure Active Directory) comme informations d’identification pour accéder au coffre de clés. Le principal de service possède un ID client et une clé d’authentification. Des informations d’identification SQL Server sont configurées avec le nom du coffre, l’ID client et la clé d’authentification. La clé d’authentification est valide un certain temps (un ou deux ans). Avant l’expiration de cette période, une nouvelle clé doit être générée pour le principal de service dans Microsoft Entra ID. Ensuite, les informations d’identification doivent être modifiées dans SQL Server. Management Studio gère un cache pour les informations d’identification de la session en cours ; ainsi, si des informations d’identification sont modifiées, Management Studio doit être redémarré.
Sauvegarde et récupération des clés
Le coffre de clés doit être sauvegardé régulièrement. Si une clé asymétrique dans le coffre est perdue, elle peut être restaurée à partir d’une sauvegarde. La clé doit être restaurée à l’aide du même nom qu’avant, ce que fait la commande PowerShell Restore (voir les étapes ci-dessous).
Si le coffre a été perdu, vous devez recréer un coffre et restaurer la clé asymétrique dans le coffre en utilisant le même nom qu’avant. Le nom du coffre peut être différent (ou le même qu’avant). Définissez les autorisations d’accès sur le nouveau coffre de manière à accorder au principal du service SQL Server l’accès nécessaire pour les scénarios de chiffrement SQL Server, puis paramétrez les informations d’identification SQL Server afin qu’elles reflètent le nom du nouveau coffre.
Voici un récapitulatif des étapes :
- Sauvegarder la clé de coffre (à l’aide de l’applet de commande PowerShell Backup-AzureKeyVaultKey).
- En cas de défaillance du coffre, créer un coffre dans la même région géographique. L’utilisateur qui crée le coffre doit se trouver dans le même annuaire par défaut que le programme d’installation du principal du service pour SQL Server.
- Restaurer la clé dans le nouveau coffre à l’aide de l’applet de commande PowerShell Restore-AzureKeyVaultKey, opération qui restaure la clé en utilisant le même nom qu’avant. S’il existe déjà une clé portant le même nom, la restauration échoue.
- Accorder des autorisations au principal du service SQL Server pour utiliser ce nouveau coffre.
- Modifier les informations d’identification SQL Server utilisées par le moteur de base de données afin qu’elles reflètent le nom du nouveau coffre (le cas échéant).
Les sauvegardes des clés peuvent être restaurées entre les régions Azure, tant qu’elles restent dans la même région géographique ou le même cloud national : États-Unis, Canada, Japon, Australie, Inde, Asie et Pacifique du sud, Europe, Brésil, Chine, Administration américaine ou Allemagne.
B. Forums Aux Questions (FAQ)
À propos d’Azure Key Vault
Comment fonctionnent les opérations de clé avec Azure Key Vault ?
La clé asymétrique dans le coffre de clés permet de protéger les clés de chiffrement SQL Server. Seule la partie publique de la clé asymétrique sort du coffre ; la partie privée n’est jamais exportée par le coffre. Toutes les opérations de chiffrement effectuées à l’aide de la clé asymétrique ont lieu dans le service Azure Key Vault et sont protégées par la sécurité de ce service.
Qu’est-ce qu’un URI de clé ?
Dans Azure Key Vault, chaque clé a un URI, que vous pouvez utiliser pour référencer la clé dans votre application. Utilisez le format https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey
pour obtenir la version actuelle, et le format https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87
pour obtenir une version spécifique.
Sur la configuration de SQL Server
Quels sont les points de terminaison auxquels le connecteur SQL Server doit pouvoir accéder ? Le connecteur communique avec deux points de terminaison, qui doivent être autorisés. Le seul port requis pour la communication sortante à ces autres services est le port 443 pour Https :
- login.microsoftonline.com/*:443
- .vault.azure.net/:443
En outre, la vérification de la liste de révocation de certificats peut créer un trafic HTTP sur le port 80.
Remarque
L'utilisation du connecteur SQL Server pour Azure Key Vault derrière un pare-feu ou un serveur proxy peut affecter les performances si le trafic est retardé ou bloqué. Familiarisez-vous avec Accéder à Azure Key Vault derrière un pare-feu pour vous assurer que les règles appropriées sont en place.
Comment se connecter à Azure Key Vault par le biais d’un serveur proxy HTTP(S) ? Le connecteur utilise les paramètres de configuration de proxy d’Internet Explorer. Ces paramètres peuvent être contrôlés par le biais d’une stratégie de groupe ou du Registre, mais il est important de noter qu’ils ne s’appliquent pas à l’ensemble du système et qu’ils doivent cibler le compte de service exécutant l’instance. Si un administrateur de base de données examine ou modifie les paramètres dans Internet Explorer, seul le compte de l’administrateur de base de données est affecté (le moteur SQL Server ne l’est pas). La connexion interactive au serveur à l’aide du compte de service n’est pas recommandée et est bloquée dans de nombreux environnements sécurisés. Les modifications apportées aux paramètres de proxy configurés peuvent nécessiter le redémarrage de l’instance SQL Server pour entrer en vigueur. En effet, elles sont mises en cache quand le connecteur tente pour la première fois de se connecter à un coffre de clés.
Quelles tailles de clé Azure Key Vault le connecteur SQL Server prend-il en charge ? La dernière build du connecteur SQL Server prend en charge les tailles de clés Azure Key Vault 2048 et 3072.
Remarque
La vue « sys.asymmetric_keys
» indique la taille de clé est de 2048 même si la taille de clé 3072 est utilisée. Il s’agit d’une lacune connue de cette vue que l’équipe produit SQL Server tâchera de résoudre dans une version ultérieure.
Quels sont les niveaux d’autorisation minimaux exigés pour chaque étape de configuration dans SQL Server ?
Même si vous pouvez effectuer toutes les étapes de configuration comme membre du rôle serveur fixe sysadmin, Microsoft vous encourage à réduire les autorisations que vous utilisez. La liste suivante définit le niveau d’autorisation minimal pour chaque action.
Pour créer un fournisseur de services de chiffrement, l’autorisation
CONTROL SERVER
ou l’appartenance au rôle de serveur fixe sysadmin est exigée.Pour modifier une option de configuration et exécuter l’instruction
RECONFIGURE
, vous devez disposer de l’autorisation de niveau serveurALTER SETTINGS
. L’autorisationALTER SETTINGS
est implicitement détenue par les rôles serveur fixes sysadmin et serveradmin .Pour créer des informations d’identification, l’autorisation
ALTER ANY CREDENTIAL
est exigée.Pour ajouter des informations d’identification à une connexion, l’autorisation
ALTER ANY LOGIN
est exigée.Pour créer une clé asymétrique, l’autorisation
CREATE ASYMMETRIC KEY
est exigée.
Comment modifier mon annuaire Microsoft Entra par défaut, de sorte que mon coffre de clés soit créé dans le même abonnement et le mème annuaire que le principal de service que j’ai créé pour le connecteur SQL Server ?
Accédez au portail Azure.
Dans le coin supérieur droit de la page, sélectionnez l’icône des paramètres ou votre profil d’utilisateur.
Sur la page Annuaires + abonnements, sélectionnez Tous les annuaires pour voir tous les annuaires Microsoft Entra auxquels vous appartenez.
Vous pouvez modifier votre Annuaire de démarrage ou changer d’annuaire si vous en avez plusieurs.
Remarque
Il se peut que vous ne disposiez pas des autorisations permettant de modifier réellement l’annuaire par défaut sur votre abonnement Azure. Dans ce cas, créez le principal du service Microsoft Entra dans votre annuaire par défaut afin qu’il soit dans le même annuaire que le coffre de clés Azure utilisé ultérieurement.
Pour en savoir plus sur Microsoft Entra ID, lisez Comment les abonnements Azure sont liés à Microsoft Entra ID.
C. Explications des codes d’erreur du connecteur SQL Server
Remarque
Bien que Microsoft Entra ID soit le nouveau nom d’Azure Active Directory (Azure AD) pour empêcher l’interruption des environnements existants, Azure AD reste toujours dans certains éléments codés en dur, tels que les champs d’interface utilisateur, les fournisseurs de connexions, les codes d’erreur et cmdlets. Dans cet article, les deux noms sont interchangeables.
Codes d’erreur du fournisseur :
Code d’erreur | Symbole | Description |
---|---|---|
0 | scp_err_Success | L'opération a réussi. |
1 | scp_err_Failure | L’opération a échoué. |
2 | scp_err_InsufficientBuffer | Cette erreur indique au moteur d’allouer davantage de mémoire pour la mémoire tampon. |
3 | scp_err_NotSupported | L'opération n'est pas prise en charge. Par exemple, le type ou l’algorithme de clé spécifié n’est pas pris en charge par le fournisseur EKM. |
4 | scp_err_NotFound | Le type ou l’algorithme de clé spécifié n’a pas pu être trouvé par le fournisseur EKM. |
5 | scp_err_AuthFailure | L’authentification auprès du fournisseur EKM a échoué. |
6 | scp_err_InvalidArgument | L’argument fourni n’est pas valide. |
7 | scp_err_ProviderError | Une erreur non spécifiée interceptée par le moteur SQL s’est produite dans le fournisseur EKM. |
401 | acquireToken | Le serveur a répondu 401 pour la requête. Vérifiez que l’ID client et le secret client sont corrects et que la chaîne d’informations d’identification est une concaténation de l’ID client et du secret client AAD sans trait d’union. |
404 | getKeyByName | Le serveur a répondu par une erreur 404, car le nom de la clé est introuvable. Vérifiez que le nom de la clé existe dans le coffre. |
2049 | scp_err_KeyNameDoesNotFitThumbprint | Le nom de la clé est trop long pour tenir dans l’empreinte numérique du moteur SQL. Le nom de la clé ne doit pas dépasser 26 caractères. |
2050 | scp_err_PasswordTooShort | La chaîne secrète, qui est la concaténation de l’ID du client AAD et de la clé secrète, comporte moins de 32 caractères. |
2051 | scp_err_OutOfMemory | Le moteur SQL ne dispose pas de suffisamment de mémoire et n’a pas pu allouer de mémoire pour le fournisseur EKM. |
2052 | scp_err_ConvertKeyNameToThumbprint | Impossible de convertir le nom de la clé en empreinte numérique. |
2053 | scp_err_ConvertThumbprintToKeyName | Impossible de convertir l’empreinte numérique en nom de clé. |
2057 | scp_err_ThumbprintExistedInRegistry | L’empreinte numérique de clé existe déjà dans le registre Windows mappé à un URI de clé différent. |
2058 | scp_err_FailureInRegistry | Impossible d’effectuer l’opération dans le Registre. Le compte de service SQL Server n’a pas l’autorisation de créer la clé de Registre. |
3000 | ErrorSuccess | L’opération AKV a réussi. |
3001 | ErrorUnknown | L’opération AKV a échoué avec une erreur non spécifiée. |
3002 | ErrorHttpCreateHttpClientOutOfMemory | Impossible de créer une opération HttpClient pour AKV en raison d’une insuffisance de mémoire. |
3003 | ErrorHttpOpenSession | Impossible d’ouvrir une session http en raison d’une erreur réseau. |
3004 | ErrorHttpConnectSession | Impossible de se connecter à une session http en raison d’une erreur réseau. |
3005 | ErrorHttpAttemptConnect | Tentative de connexion impossible en raison d’une erreur réseau. |
3006 | ErrorHttpOpenRequest | Impossible d’ouvrir une requête en raison d’une erreur réseau. |
3007 | ErrorHttpAddRequestHeader | Impossible d’ajouter un en-tête de requête. |
3008 | ErrorHttpSendRequest | Impossible d’envoyer une requête en raison d’une erreur réseau. |
3009 | ErrorHttpGetResponseCode | Impossible d’obtenir un code de réponse en raison d’une erreur réseau. |
3010 | ErrorHttpResponseCodeUnauthorized | Le serveur a répondu 401 pour la requête. |
3011 | ErrorHttpResponseCodeThrottled | Le serveur a limité la requête. |
3012 | ErrorHttpResponseCodeClientError | La demande envoyée à partir du connecteur n’est pas valide. Cela signifie généralement le nom de clé n’est pas valide ou contient des caractères non valides. |
3013 | ErrorHttpResponseCodeServerError | Le serveur a renvoyé un code de réponse compris entre 500 et 600. |
3014 | ErrorHttpQueryHeader | Impossible de rechercher l’en-tête de réponse. |
3015 | ErrorHttpQueryHeaderOutOfMemoryCopyHeader | Impossible de copier l’en-tête de réponse en raison d’une insuffisance de mémoire. |
3016 | ErrorHttpQueryHeaderOutOfMemoryReallocBuffer | Impossible d’interroger l’en-tête de réponse en raison d’une insuffisance de mémoire lors de la réallocation d’une mémoire tampon. |
3017 | ErrorHttpQueryHeaderNotFound | L’en-tête de requête est introuvable dans la réponse. |
3018 | ErrorHttpQueryHeaderUpdateBufferLength | Impossible de mettre à jour la longueur de la mémoire tampon lors de l’interrogation de l’en-tête de réponse. |
3019 | ErrorHttpReadData | Impossible de lire les données de la réponse en raison d’une erreur réseau. |
3076 | ErrorHttpResourceNotFound | Le serveur a répondu par une erreur 404, car le nom de la clé est introuvable. Vérifiez que le nom de la clé existe dans le coffre. |
3077 | ErrorHttpOperationForbidden | Le serveur a répondu par une erreur 403, car l’utilisateur n’a pas l’autorisation appropriée pour effectuer l’action. Vérifiez que vous disposez de l’autorisation pour l’opération spécifiée. Au minimum, le connecteur exige des autorisations « get, list, wrapKey, unwrapKey » pour fonctionner correctement. |
3100 | ErrorHttpCreateHttpClientOutOfMemory | Impossible de créer une opération HttpClient pour AKV en raison d’une insuffisance de mémoire. |
3101 | ErrorHttpOpenSession | Impossible d’ouvrir une session HTTP en raison d’une erreur réseau. |
3102 | ErrorHttpConnectSession | Impossible de connecter une session HTTP en raison d’une erreur réseau. |
3103 | ErrorHttpAttemptConnect | Tentative de connexion impossible en raison d’une erreur réseau. |
3104 | ErrorHttpOpenRequest | Impossible d’ouvrir une requête en raison d’une erreur réseau. |
3105 | ErrorHttpAddRequestHeader | Impossible d’ajouter un en-tête de requête. |
3106 | ErrorHttpSendRequest | Impossible d’envoyer une requête en raison d’une erreur réseau. |
3107 | ErrorHttpGetResponseCode | Impossible d’obtenir un code de réponse en raison d’une erreur réseau. |
3108 | ErrorHttpResponseCodeUnauthorized | Le serveur a répondu 401 pour la requête. Vérifiez que l’ID client et le secret client sont corrects et que la chaîne d’informations d’identification est une concaténation de l’ID client et du secret client AAD sans trait d’union. |
3109 | ErrorHttpResponseCodeThrottled | Le serveur a limité la requête. |
3110 | ErrorHttpResponseCodeClientError | La requête n’est pas valide. Cela signifie généralement le nom de clé n’est pas valide ou contient des caractères non valides. |
3111 | ErrorHttpResponseCodeServerError | Le serveur a renvoyé un code de réponse compris entre 500 et 600. |
3112 | ErrorHttpResourceNotFound | Le serveur a répondu par une erreur 404, car le nom de la clé est introuvable. Vérifiez que le nom de la clé existe dans le coffre. |
3113 | ErrorHttpOperationForbidden | Le serveur a répondu 403, car l’utilisateur n’a pas l’autorisation appropriée pour effectuer l’action. Vérifiez que vous disposez des autorisations pour l’opération spécifiée. Au minimum, les autorisations « Get, WrapKey, UnwrapKey » sont requises. |
3114 | ErrorHttpQueryHeader | Impossible de rechercher l’en-tête de réponse. |
3115 | ErrorHttpQueryHeaderOutOfMemoryCopyHeader | Impossible de copier l’en-tête de réponse en raison d’une insuffisance de mémoire. |
3116 | ErrorHttpQueryHeaderOutOfMemoryReallocBuffer | Impossible d’interroger l’en-tête de réponse en raison d’une insuffisance de mémoire lors de la réallocation d’une mémoire tampon. |
3117 | ErrorHttpQueryHeaderNotFound | L’en-tête de requête est introuvable dans la réponse. |
3118 | ErrorHttpQueryHeaderUpdateBufferLength | Impossible de mettre à jour la longueur de la mémoire tampon lors de l’interrogation de l’en-tête de réponse. |
3119 | ErrorHttpReadData | Impossible de lire les données de la réponse en raison d’une erreur réseau. |
3120 | ErrorHttpGetResponseOutOfMemoryCreateTempBuffer | Impossible d’obtenir le corps de la réponse en raison d’une mémoire insuffisante lors de la création d’une mémoire tampon temporaire. |
3121 | ErrorHttpGetResponseOutOfMemoryGetResultString | Impossible d’obtenir le corps de la réponse en raison d’une mémoire insuffisante lors de l’obtention de la chaîne de résultats. |
3122 | ErrorHttpGetResponseOutOfMemoryAppendResponse | Impossible d’obtenir le corps de la réponse en raison d’une mémoire insuffisante lors de l’ajout de la réponse. |
3200 | ErrorGetAADValuesOutOfMemoryConcatPath | Impossible d’obtenir les valeurs d’en-tête de stimulation Azure Active Directory en raison d’une mémoire insuffisante lors de la concaténation du chemin. |
3201 | ErrorGetAADDomainUrlStartPosition | Impossible de trouver la position de départ de l’URL du domaine Azure Active Directory dans l’en-tête de stimulation de la réponse mal formée. |
3202 | ErrorGetAADDomainUrlStopPosition | Impossible de trouver la position de fin de l’URL du domaine Azure Active Directory dans l’en-tête de stimulation de la réponse mal formée. |
3203 | ErrorGetAADDomainUrlMalformatted | L’en-tête de stimulation de la réponse Azure Active Directory est mal formée et ne contient pas l’URL de domaine AAD. |
3204 | ErrorGetAADDomainUrlOutOfMemoryAlloc | Mémoire insuffisante lors de l’allocation de la mémoire tampon pour l’URL de domaine Azure Active Directory. |
3205 | ErrorGetAADTenantIdOutOfMemoryAlloc | Mémoire insuffisante lors de l’allocation de la mémoire tampon pour l’ID d’abonné Azure Active Directory. |
3206 | ErrorGetAKVResourceUrlStartPosition | Impossible de trouver la position de départ de l’URL de ressource Azure Active Directory dans l’en-tête de stimulation de la réponse mal formée. |
3207 | ErrorGetAKVResourceUrlStopPosition | Impossible de trouver la position de fin de l’URL de ressource Azure Active Directory dans l’en-tête de stimulation de la réponse mal formée. |
3208 | ErrorGetAKVResourceUrlOutOfMemoryAlloc | Mémoire insuffisante lors de l’allocation de la mémoire tampon pour l’URL de ressource Azure Key Vault. |
3300 | ErrorGetTokenOutOfMemoryConcatPath | Impossible d’obtenir le jeton en raison d’une mémoire insuffisante lors de la concaténation du chemin d’accès de la requête. |
3301 | ErrorGetTokenOutOfMemoryConcatBody | Impossible d’obtenir le jeton en raison d’une mémoire insuffisante lors de la concaténation du corps de la réponse. |
3302 | ErrorGetTokenOutOfMemoryConvertResponseString | Impossible d’obtenir le jeton en raison d’une mémoire insuffisante lors de la conversion de la chaîne de réponses. |
3303 | ErrorGetTokenBadCredentials | Impossible d’obtenir un jeton en raison d’informations d’identification incorrectes. Vérifiez que la chaîne d’informations d’identification ou le certificat est valide. |
3304 | ErrorGetTokenFailedToGetToken | Alors que les informations d’identification sont correctes, l’opération n’a toujours pas réussi à obtenir un jeton valide. |
3305 | ErrorGetTokenRejected | Le jeton est valide, mais il est rejeté par le serveur. |
3306 | ErrorGetTokenNotFound | Le jeton est introuvable dans la réponse. |
3307 | ErrorGetTokenJsonParser | Impossible d’analyser la réponse JSON du serveur. |
3308 | ErrorGetTokenExtractToken | Impossible d’extraire le jeton de la réponse JSON. |
3400 | ErrorGetKeyByNameOutOfMemoryConvertResponseString | Impossible d’obtenir la clé par son nom en raison d’une mémoire insuffisante lors de la conversion de la chaîne de réponses. |
3401 | ErrorGetKeyByNameOutOfMemoryConcatPath | Impossible d’obtenir la clé par son nom en raison d’une mémoire insuffisante lors de la concaténation du chemin d’accès. |
3402 | ErrorGetKeyByNameOutOfMemoryConcatHeader | Impossible d’obtenir la clé par son nom en raison d’une mémoire insuffisante lors de la concaténation de l’en-tête. |
3403 | ErrorGetKeyByNameNoResponse | Impossible d’obtenir la clé par son nom en raison de l’absence de réponse du serveur. |
3404 | ErrorGetKeyByNameJsonParser | Impossible d’obtenir la clé par son nom en raison de l’échec de l’analyse de la réponse JSON. |
3405 | ErrorGetKeyByNameExtractKeyNode | Impossible d’obtenir la clé par son nom en raison de l’échec de l’extraction du nœud de clé à partir de la réponse. |
3406 | ErrorGetKeyByNameExtractKeyId | Impossible d’obtenir la clé par son nom en raison de l’échec de l’extraction de l’ID de clé à partir de la réponse. |
3407 | ErrorGetKeyByNameExtractKeyType | Impossible d’obtenir la clé par son nom en raison de l’échec de l’extraction du type de clé à partir de la réponse. |
3408 | ErrorGetKeyByNameExtractKeyN | Impossible d’obtenir la clé par son nom en raison de l’échec de l’extraction de la clé N à partir de la réponse. |
3409 | ErrorGetKeyByNameBase64DecodeN | Impossible d’obtenir la clé par son nom en raison de l’échec du décodage en Base64 de N. |
3410 | ErrorGetKeyByNameExtractKeyE | Impossible d’obtenir la clé par son nom en raison de l’échec de l’extraction de la clé E à partir de la réponse. |
3411 | ErrorGetKeyByNameBase64DecodeE | Impossible d’obtenir la clé par son nom en raison de l’échec du décodage en Base64 de E. |
3412 | ErrorGetKeyByNameExtractKeyUri | Impossible d’extraire l’URI de clé de la réponse. |
3 500 | ErrorBackupKeyOutOfMemoryConvertResponseString | Impossible de sauvegarder la clé en raison d’une mémoire insuffisante lors de la conversion de la chaîne de réponses. |
3501 | ErrorBackupKeyOutOfMemoryConcatPath | Impossible de sauvegarder la clé en raison d’une mémoire insuffisante lors de la concaténation du chemin d’accès. |
3502 | ErrorBackupKeyOutOfMemoryConcatHeader | Impossible de sauvegarder la clé en raison d’une mémoire insuffisante lors de la concaténation de l’en-tête de demande. |
3503 | ErrorBackupKeyNoResponse | Impossible de sauvegarder la clé en raison de l’absence de réponse du serveur. |
3504 | ErrorBackupKeyJsonParser | Impossible de sauvegarder la clé en raison de l’échec de l’analyse de la réponse JSON. |
3505 | ErrorBackupKeyExtractValue | Impossible de sauvegarder la clé en raison de l’échec de l’extraction de la valeur de la réponse JSON. |
3506 | ErrorBackupKeyBase64DecodeValue | Impossible de sauvegarder la clé en raison de l’échec du décodage en Base64 du champ de valeur. |
3600 | ErrorWrapKeyOutOfMemoryConvertResponseString | Impossible d’envelopper la clé en raison d’une mémoire insuffisante lors de la conversion de la chaîne de réponses. |
3601 | ErrorWrapKeyOutOfMemoryConcatPath | Impossible d’envelopper la clé en raison d’une mémoire insuffisante lors de la concaténation du chemin d’accès. |
3602 | ErrorWrapKeyOutOfMemoryConcatHeader | Impossible d’envelopper la clé en raison d’une mémoire insuffisante lors de la concaténation de l’en-tête. |
3,603 | ErrorWrapKeyOutOfMemoryConcatBody | Impossible d’envelopper la clé en raison d’une mémoire insuffisante lors de la concaténation du corps. |
3604 | ErrorWrapKeyOutOfMemoryConvertEncodedBody | Impossible d’envelopper la clé en raison d’une mémoire insuffisante lors de la conversion du corps encodé. |
3605 | ErrorWrapKeyBase64EncodeKey | Impossible d’envelopper la clé en raison de l’échec d’encodage en Base64 de la clé. |
3606 | ErrorWrapKeyBase64DecodeValue | Impossible d’envelopper la clé en raison de l’échec du décodage en Base64 de la valeur de la réponse. |
3607 | ErrorWrapKeyJsonParser | Impossible d’envelopper la clé en raison de l’échec de l’analyse de la réponse JSON. |
3608 | ErrorWrapKeyExtractValue | Impossible d’envelopper la clé en raison de l’échec d’extraction de la valeur de la réponse. |
3609 | ErrorWrapKeyNoResponse | Impossible d’envelopper la clé en raison de l’absence de réponse du serveur. |
3700 | ErrorUnwrapKeyOutOfMemoryConvertResponseString | Impossible de désenvelopper la clé en raison d’une mémoire insuffisante lors de la conversion de la chaîne de réponses. |
3701 | ErrorUnwrapKeyOutOfMemoryConcatPath | Impossible de désenvelopper la clé en raison d’une mémoire insuffisante lors de la concaténation du chemin d’accès. |
3702 | ErrorUnwrapKeyOutOfMemoryConcatHeader | Impossible de désenvelopper la clé en raison d’une mémoire insuffisante lors de la concaténation de l’en-tête. |
3703 | ErrorUnwrapKeyOutOfMemoryConcatBody | Impossible de désenvelopper la clé en raison d’une mémoire insuffisante lors de la concaténation du corps. |
3704 | ErrorUnwrapKeyOutOfMemoryConvertEncodedBody | Impossible de désenvelopper la clé en raison d’une mémoire insuffisante lors de la conversion du corps encodé. |
3705 | ErrorUnwrapKeyBase64EncodeKey | Impossible de désenvelopper la clé en raison de l’échec d’encodage en Base64 de la clé. |
3706 | ErrorUnwrapKeyBase64DecodeValue | Impossible de désenvelopper la clé en raison de l’échec du décodage en Base64 de la valeur de la réponse. |
3707 | ErrorUnwrapKeyJsonParser | Impossible de désenvelopper la clé en raison de l’échec de l’extraction de la valeur de la réponse. |
3708 | ErrorUnwrapKeyExtractValue | Impossible de désenvelopper la clé en raison de l’échec de l’extraction de la valeur de la réponse. |
3709 | ErrorUnwrapKeyNoResponse | Impossible de désenvelopper la clé en raison de l’absence de réponse du serveur. |
3 800 | ErrorSecretAuthParamsGetRequestBody | Erreur lors de la création du corps de la demande à l’aide de l’ID client et du secret AAD. |
3801 | ErrorJWTTokenCreateHeader | Erreur lors de la création de l’en-tête de jeton JWT pour l’authentification avec AAD. |
3802 | ErrorJWTTokenCreatePayloadGUID | Erreur lors de la création du GUID pour la charge utile du jeton JWT pour l’authentification avec AAD. |
3803 | ErrorJWTTokenCreatePayload | Erreur lors de la création de la charge utile du jeton JWT pour l’authentification avec AAD. |
3804 | ErrorJWTTokenCreateSignature | Erreur lors de la création de la signature du jeton JWT pour l’authentification avec AAD. |
3805 | ErrorJWTTokenSignatureHashAlg | Erreur lors de l’obtention de l’algorithme de hachage SHA256 pour l’authentification avec AAD. |
3806 | ErrorJWTTokenSignatureHash | Erreur lors de la création du code de hachage SHA256 pour l’authentification du jeton JWT avec AAD. |
3807 | ErrorJWTTokenSignatureSignHash | Erreur lors de la signature du hachage de jeton JTW pour l’authentification avec AAD. |
3808 | ErrorJWTTokenCreateToken | Erreur lors de la création du jeton JWT pour l’authentification avec AAD. |
3809 | ErrorPfxCertAuthParamsImportPfx | Erreur lors de l’importation du certificat pfx pour l’authentification avec AAD. |
3810 | ErrorPfxCertAuthParamsGetThumbprint | Erreur lors de l’obtention de l’empreinte du certificat Pfx pour l’authentification avec AAD. |
3811 | ErrorPfxCertAuthParamsGetPrivateKey | Erreur lors de l’obtention de la clé privée du certificat Pfx pour l’authentification avec AAD. |
3812 | ErrorPfxCertAuthParamsSignAlg | Erreur lors de l’obtention de l’algorithme de signature RSA pour l’authentification par certificat Pfx avec AAD. |
3813 | ErrorPfxCertAuthParamsImportForSign | Erreur lors de l’importation de la clé privée Pfx pour la signature RSA pour l’authentification avec AAD. |
3814 | ErrorPfxCertAuthParamsCreateRequestBody | Erreur lors de la création du corps de la demande du certificat Pfx pour l’authentification avec AAD. |
3815 | ErrorPEMCertAuthParamsGetThumbprint | Erreur de décodage en Base64 de l’empreinte pour l’authentification avec AAD. |
3816 | ErrorPEMCertAuthParamsGetPrivateKey | Erreur lors de l’obtention de la clé privée RSA du PEM pour l’authentification avec AAD. |
3817 | ErrorPEMCertAuthParamsSignAlg | Erreur lors de l’obtention de l’algorithme de signature RSA pour l’authentification par clé privée PEM avec AAD. |
3818 | ErrorPEMCertAuthParamsImportForSign | Erreur lors de l’importation de la clé privée PEM pour la signature RSA pour l’authentification avec AAD. |
3819 | ErrorPEMCertAuthParamsCreateRequestBody | Erreur lors de la création du corps de la demande de la clé privée PEM pour l’authentification avec AAD. |
3820 | ErrorLegacyPrivateKeyAuthParamsSignAlg | Erreur lors de l’obtention de l’algorithme de signature RSA pour l’authentification par clé privée héritée avec AAD. |
3821 | ErrorLegacyPrivateKeyAuthParamsImportForSign | Erreur lors de l’importation de la clé privée héritée pour la signature RSA pour l’authentification avec AAD. |
3822 | ErrorLegacyPrivateKeyAuthParamsCreateRequestBody | Erreur lors de la création du corps de la demande de la clé privée héritée pour l’authentification avec AAD. |
3900 | ErrorAKVDoesNotExist | Erreur du nom Internet non résolu. Cela indique généralement que Azure Key Vault est supprimée. |
4000 | ErrorCreateKeyVaultRetryManagerOutOfMemory | Impossible de créer une opération RetryManager pour AKV en raison d’une insuffisance de mémoire. |
Si votre code d’erreur ne figure pas dans ce tableau, voici d’autres raisons pouvant expliquer pourquoi l’erreur se produit :
Vous ne disposez peut-être pas d’un accès Internet et vous ne pouvez pas accéder à votre service Azure Key Vault. Vérifiez votre connexion Internet.
Le service Azure Key Vault n’est peut-être pas disponible. Réessayez ultérieurement.
Vous avez peut-être supprimé la clé asymétrique d’Azure Key Vault ou de SQL Server. Restaurez la clé.
Si vous obtenez l’erreur « Impossible de charger la bibliothèque », vérifiez que la version de Visual Studio C++ Redistribuable dont vous disposez convient à la version de SQL Server que vous exécutez. Le tableau ci-dessous indique la version à installer à partir du Centre de téléchargement Microsoft.
Le journal des événements Windows consigne également les erreurs associées au connecteur SQL Server, ce qui peut vous donner des informations supplémentaires sur la cause de l’erreur. La source dans le journal des événements de l’application Windows sera « Connecteur SQL Server pour Microsoft Azure Key Vault ».
Bibliothèques Runtime C++ pour le connecteur SQL Server 1.0.5.0
Version de SQL Server | Lien d’installation redistribuable si vous utilisez le connecteur SQL Server 1.0.5.0 |
---|---|
2008, 2008 R2, 2012, 2014 | Packages redistribuables Visual C++ pour Visual Studio 2013 |
2016, 2017, 2019 | Redistribuable Visual C++ pour Visual Studio 2015 |
Bibliothèques Runtime C++ pour le connecteur SQL Server 1.0.4.0
Version de SQL Server | Lien d’installation redistribuable si vous utilisez le connecteur SQL Server 1.0.4.0 |
---|---|
2008, 2008 R2, 2012, 2014, 2016, 2017, 2019 | Packages redistribuables Visual C++ pour Visual Studio 2013 |
Références supplémentaires
Informations supplémentaires sur la gestion de clés extensible :
Chiffrements SQL prenant en charge la gestion de clés extensible :
Commandes Transact-SQL associées :
Documentation relative à Azure Key Vault
Informations de référence sur les applets de commande Azure Key Vault de PowerShell
Contenu connexe
Utiliser le connecteur SQL Server avec les fonctionnalités de chiffrement SQL
Étapes de la configuration de la gestion de clés extensible à l’aide d’Azure Key Vault
Pour obtenir des exemples de scripts supplémentaires, consultez le blog sur Chiffrement des données transparentes SQL Server et gestion de clés extensible avec Azure Key Vault