Une base de données compatible TDE peut ne pas récupérer dans SQL Server

Cet article vous aide à résoudre le problème dans lequel une base de données compatible TDE peut ne pas récupérer lorsque le chiffrement automatique de la clé master par la clé de master de service (SMK) est supprimé.

S’applique à : SQL Server 2008 Enterprise, SQL Server 2008 R2 Enterprise
Numéro de la base de connaissances d’origine : 2666213

Symptômes

Dans Microsoft SQL Server 2008 et microsoft SQL Server 2008 R2, une base de données activée pour le chiffrement transparent de base de données (TDE) peut ne pas récupérer. De plus, le message d’erreur suivant peut être enregistré dans le journal des erreurs SQL Server :

2012-01-14 22 :16 :26.47 spid20s Erreur : 15581, Gravité : 16, État : 3.
2012-01-14 22 :16 :26.47 spid20s Créez une clé master dans la base de données ou ouvrez la clé master dans la session avant d’effectuer cette opération.

Cause

Ce problème se produit lorsque le chiffrement de clé master de service pour la clé de master de base de données dans la base de données master est supprimé lors de l’exécution de la commande suivante :

USE MASTER
GO
ALTER MASTER KEY DROP ENCRYPTION BY SERVICE MASTER KEY

Lorsqu’une clé de master de base de données (DMK) est créée pour la première fois, elle est automatiquement chiffrée avec la clé SMK.

La clé de master de base de données est utilisée pour chiffrer le certificat utilisé par la fonctionnalité Transparent Database Encryption. Toute tentative d’utilisation de la base de données compatible TDE nécessite l’accès au certificat et à la clé de master de base de données dans la base de données master. Dans la configuration par défaut, le DMK est implicitement ouvert par le SMK. Une clé master qui n’est pas chiffrée par la clé de master de service doit être ouverte explicitement à l’aide de l’instruction OPEN MASTER KEY avec un mot de passe sur chaque session qui nécessite l’accès à la clé master.

La récupération de base de données se produit sur les sessions système. Si ces sessions ne peuvent pas ouvrir le certificat et le DMK, la récupération ne peut pas être effectuée sur une base de données compatible TDE si le déchiffrement automatique de DMK par SMK est supprimé. Dans ce scénario, la base de données est marquée comme Récupération en attente.

Résolution

Pour résoudre le problème, activez le déchiffrement automatique de la clé master. Pour ce faire, exécutez les commandes suivantes :

USE MASTER
GO
OPEN MASTER KEY DECRYPTION BY PASSWORD = '<password>'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY

Mettez la base de données hors connexion et mettez-la en ligne à l’aide de la ALTER DATABASE <databasename> SET ONLINE commande .

Utilisez la requête suivante pour déterminer si le déchiffrement automatique de la clé de master par la clé de master de service a été désactivé pour la base de données master :

SELECT is_master_key_encrypted_by_server FROM sys.databases WHERE NAME = 'master'

Si cette requête retourne la valeur 0, le déchiffrement automatique de la clé master par la clé de master de service a été désactivé.