KB2300689-FIX : il est impossible de restaurer une sauvegarde d’une base de données sur une autre instance de SQL Server si vous désactivez le chiffrement de données transparent avant de créer la sauvegarde dans SQL Server 2008 ou SQL Server 2008 R2.

Microsoft distribue les correctifs Microsoft SQL Server 2008 et Microsoft SQL Server 2008 R2 sous la forme d’un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente de SQL Server 2008 ou SQL Server 2008 R2.

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous utilisez un chiffrement de données transparent sur une base de données dans SQL Server 2008 ou dans Microsoft SQL Server 2008 R2.

  • Le chiffrement de la base de données est désactivé.

  • Vous sauvegardez la base de données immédiatement après la désactivation du chiffrement.

  • Vous essayez de restaurer la base de données sur une autre instance de SQL Server à l’aide de la sauvegarde.

Dans ce scénario, l’opération de restauration échoue et vous recevez un message d’erreur qui ressemble à ce qui suit :

System. Data. SqlClient. SqlError : le fichier « <nom de la base de données>_log » n’a pas pu être initialisé correctement. Pour plus d’informations, consultez les journaux d’erreur. (Microsoft.SqlServer.Smo)

Toutefois, le journal des erreurs ne comporte aucun détail. Si vous supprimez la clé de chiffrement de la base de données avant de sauvegarder celle-ci, vous recevez le message d’erreur suivant lorsque vous essayez de restaurer la base de données :

System. Data. SqlClient. SqlError : impossible de trouver le certificat de serveur avec l’empreinte digitale « 0xCB62FF76463A6BF86E8F769B541BA6483AFC2FF2 ». (Microsoft.SqlServer.Smo)

Résolution

Informations sur les mises à jour cumulatives

SQL Server 2008 Service Pack 1

Le correctif de ce problème a été corrigé pour la première fois dans la mise à jour cumulative 10 pour SQL Server 2008 Service Pack 1. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2279604 Package de mise à jour cumulative 10 pour SQL Server 2008 Service Pack 1Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2008. Microsoft vous recommande d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

970365 Builds SQL Server 2008 publiées après la sortie de SQL Server 2008 Service Pack 1 Des correctifs Microsoft SQL Server 2008 sont créés pour des service packs SQL Server spécifiques. Vous devez appliquer un correctif SQL Server 2008 Service Pack 1 à une installation de SQL Server 2008 Service Pack 1. Par défaut, tout correctif fourni dans un service pack SQL Server est inclus dans le prochain Service Pack SQL Server.

SQL Server 2008 Service Pack 2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 1 pour SQL Server 2008 Service Pack 2. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2289254 Mise à jour cumulative 1 pour SQL Server 2008 Service Pack 2Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2008. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

2402659 Builds SQL Server 2008 publiées après la sortie de SQL Server 2008 Service Pack 2

SQL Server 2008 R2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 4. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2345451 Package de mise à jour cumulative 4 pour SQL Server 2008 R2 Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

981356 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Procédure pour reproduire le problème

  1. Créer une clé maître. Voici un exemple de code qui crée une clé maître :

    use masterCreate Master Key encryption by password = 'Password01!';go
  2. Créez ou obtenez un certificat protégé par la clé maître. Voici un exemple de code qui crée un certificat protégé par une clé maître :

    create certificate cert_testDB_encryptDEK  authorization dbowith subject='Certificate to encrypt the DEK of testDB'
  3. Créez une base de données, créez une clé de chiffrement de base de données, puis protégez-la sur le certificat. Voici un exemple de code qui crée une nouvelle base de données, qui crée une clé de chiffrement de base de données, puis protège la clé à l’aide d’un certificat :

    create Database testDBuse testDBCreate database encryption key with algorithm=AES_128encryption by server certificate cert_testDB_encryptDEK  
  4. Définissez la base de données sur l’utilisation du chiffrement. Voici un exemple de code qui définit une base de données pour utiliser le chiffrement :

    Alter database testDB set encryption on 
  5. Désactiver le chiffrement de la base de données. Voici un exemple de code qui désactive le chiffrement pour une base de données :

    Alter database testDB set encryption off 
  6. Sauvegardez la base de données, puis restaurez celle-ci sur une autre version de SQL Server.

Références

Pour plus d’informations sur le chiffrement de données transparent (TDE), visitez le site Web Microsoft Developer Network (MSDN) suivant :

Informations générales sur TDEPour plus d’informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

935897 Un modèle de maintenance incrémentiel est disponible auprès de l’équipe SQL Server pour obtenir des correctifs pour les problèmes signalésPour plus d’informations sur le schéma d’appellation des mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

822499Nouveau schéma d’affectation de noms pour les packages de mise à jour logicielle Microsoft SQL ServerPour plus d’informations sur la terminologie des mises à jour logicielles, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×