FIX: È possibile ripristinare un backup di un database in un'altra istanza di SQL Server se si disattiva la crittografia trasparente dei dati prima di creare il backup in SQL Server 2008 o SQL Server 2008 R2

Template: Generic Hotfix

BUG #: 136057 (Content Maintenance)VSTS:533891VSTS:542993

Microsoft distribuisce Microsoft SQL Server 2008 e Microsoft SQL Server 2008 R2 consente di risolvere come un unico file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutti gli hotfix e tutte le correzioni rilasciate con SQL Server 2008 o SQL Server 2008 R2 precedente correggere rilascio.

Sintomi

Considerare lo scenario descritto di seguito:

  • Crittografia dati trasparente è possibile utilizzare un database SQL Server 2008 o in Microsoft SQL Server 2008 R2.

  • Disabilitare la crittografia per il database.

  • Il backup del database immediatamente dopo la disabilitazione di crittografia.

  • Si tenta di ripristinare il database in un'altra istanza di SQL Server utilizzando il backup.

In questo scenario, l'operazione di ripristino non riesce e viene visualizzato un messaggio di errore analogo al seguente:

System.Data.SqlClient.SqlError: Impossibile inizializzare correttamente il file "< nome database > _log". Esaminare i registri eventi per ulteriori dettagli. (Microsoft.SqlServer.Smo)

Il log degli errori non ha invece alcun dettaglio. Se si rimuove la chiave di crittografia per il database prima di eseguire il backup del database, viene visualizzato il seguente messaggio di errore quando si tenta di ripristinare il database:

System.Data.SqlClient.SqlError: Impossibile trovare il certificato server con identificazione personale '0xCB62FF76463A6BF86E8F769B541BA6483AFC2FF2'. (Microsoft.SqlServer.Smo)

Risoluzione

Informazioni sull'aggiornamento cumulativo

SQL Server 2008 Service Pack 1

La correzione di questo problema è stata rilasciata prima 10 aggiornamento cumulativo per SQL Server 2008 Service Pack 1. Per ulteriori informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

2279604 Pacchetto di aggiornamento cumulativo 10 per SQL Server 2008 Service Pack 1Nota Poiché le versioni sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e rilascio delle correzioni per tutte le correzioni fornite con il precedente 2008 di SQL Server. Microsoft consiglia di considerare l'applicazione alla versione più recente di correzione contenente tale hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

970365 Il 2008 di SQL Server versioni rilasciate dopo il rilascio di SQL Server 2008 Service Pack 1 Aggiornamenti rapidi di Microsoft SQL Server 2008 vengono creati per service pack specifici di SQL Server. È necessario applicare un hotfix di SQL Server 2008 Service Pack 1 a un'installazione di SQL Server 2008 Service Pack 1. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack di SQL Server è incluso nel prossimo service pack di SQL Server.

SQL Server 2008 Service Pack 2

La correzione di questo problema è stata rilasciata prima nell'aggiornamento cumulativo 1 per SQL Server 2008 Service Pack 2. Per ulteriori informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

2289254 Aggiornamento cumulativo 1 per SQL Server 2008 Service Pack 2Nota Poiché le versioni sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e rilascio delle correzioni per tutte le correzioni fornite con il precedente 2008 di SQL Server. Si consiglia di considerare l'ipotesi di applicare la versione più recente contenente tale hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2402659 Il 2008 di SQL Server versioni rilasciate dopo il rilascio di SQL Server 2008 Service Pack 2

SQL Server 2008 R2

La correzione di questo problema è stata rilasciata nell'aggiornamento cumulativo 4. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2008 R2, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

2345451 Pacchetto di aggiornamento cumulativo 4 per SQL Server 2008 R2 Nota Poiché le versioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con il precedente di SQL Server 2008 R2. Si consiglia di considerare l'ipotesi di applicare la versione più recente contenente tale hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

981356 Di SQL Server 2008 R2 versioni rilasciate dopo il rilascio di SQL Server 2008 R2

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Procedura per riprodurre il problema

  1. Creare una chiave master. Di seguito è riportato un esempio di codice che crea una chiave master:

    use masterCreate Master Key encryption by password = 'Password01!';go
  2. Creare o ottenere un certificato protetto dalla chiave master. Di seguito è riportato un esempio di codice che crea un certificato protetto da una chiave master:

    create certificate cert_testDB_encryptDEK  authorization dbowith subject='Certificate to encrypt the DEK of testDB'
  3. Creare un nuovo database, creare una chiave di crittografia del database e quindi proteggere la chiave del certificato. Di seguito è riportato un esempio di codice che crea un nuovo database, che crea una chiave di crittografia del database, e quindi che protegge la chiave utilizzando un certificato:

    create Database testDBuse testDBCreate database encryption key with algorithm=AES_128encryption by server certificate cert_testDB_encryptDEK  
  4. Impostare il database per utilizzare la crittografia. Di seguito è riportato un esempio di codice che imposta il database da utilizzare la crittografia:

    Alter database testDB set encryption on 
  5. Disabilitare la crittografia per il database. Di seguito è riportato un esempio di codice che consente di disattivare la crittografia di un database:

    Alter database testDB set encryption off 
  6. Il backup del database e quindi ripristinare il backup in un'altra versione di SQL Server.

Riferimenti

Per ulteriori informazioni su crittografia dati trasparente (TDE), visitare il seguente sito Web Microsoft Developer Network (MSDN):

Informazioni generali su TDEPer ulteriori informazioni sul modello di manutenzione incrementale per SQL Server, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

935897 Modello di manutenzione incrementale è disponibile dal team di SQL Server per offrire gli hotfix per i problemi segnalatiPer ulteriori informazioni sullo schema di denominazione per gli aggiornamenti di SQL Server, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

822499Nuovo schema di denominazione per i pacchetti di aggiornamento software di Microsoft SQL ServerPer ulteriori informazioni sulla terminologia degli aggiornamenti software, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:

824684 Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

Author: sharxu
Writer: v-xinbi
Tech Reviewer:vencher;sharxu;sqlprev;kfarlee
Editor: v-lynan

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×