Symptom
Anta att du regelbundet aktiverar och inaktiverar kryptering på en databas och dessutom regelbundet ändrar krypterings nycklarna i databasen i SQL Server 2012. I det här scenariot kanske databasen inte är krypterad när du aktiverar kryptering. Om du ändrar krypterings nycklarna kan det uppstå en kontroll.
Orsak
Det här problemet beror på att om en databas krypterings princip (DEK) inte är i ett krypterat tillstånd och den ändras, kopierar nästa uppdatering av den här funktionen den viktigaste delen av DEK, men den kopierar inte automatiskt krypterings tillståndet. I SQL Server 2012, efter en dekrypterings sökning, bevaras DEK i FCB-huvudet (File Control Block) och DEK tas bort bara när du tappar bort den. När kryptering är inaktiverat, det finns en viktig ändring och sedan försöker aktivera krypteringen, visar Dynamic Management View (DMV) att krypteringen är klar. Men krypterings genomsökningen utförs inte och sidorna lämnas inte krypterade.
Lösning
Kumulativ uppdaterings information
SQL Server 2012
Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 1. Om du vill veta mer om hur du hämtar det här kumulativa uppdaterings paketet för SQL Server 2012 klickar du på följande artikel nummer och läser artikeln i Microsoft Knowledge Base:
2679368 Kumulativt uppdaterings paket 1 för SQL Server 2012Obs! Eftersom build-versionerna är kumulativa innehåller varje ny korrigerings utgåva alla snabb korrigeringar och alla säkerhets korrigeringar som ingick med föregående version av SQL Server 2012. Vi rekommenderar att du använder den senaste korrigerings versionen som innehåller den här snabb korrigeringen. Om du vill veta mer klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
2692828 SQL Server 2012-versioner som släpptes efter att SQL Server 2012 släpptes
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".
Lösning
Undvik det här problemet genom att släppa krypterings nycklarna varje gång du inaktiverar kryptering på en databas.
Mer information
Information om samtals stack
FCB::InitializeReencryptionScan ntdbms\storeng\dfs\manager\fcb.cpp 8407FCB::ReencryptFile ntdbms\storeng\dfs\manager\fcb.cpp 8934AsynchronousDiskAction::DoReencryptFile ntdbms\storeng\dfs\manager\asyncdp.cpp 810AsynchronousDiskAction::ExecuteDeferredAction ntdbms\storeng\dfs\manager\asyncdp.cpp 1203AsynchronousDiskPool::ProcessActions ntdbms\storeng\dfs\manager\asyncdp.cpp 2252AsynchronousDiskWorker::ThreadRoutine ntdbms\storeng\dfs\manager\asyncdp.cpp 3120SubprocEntrypoint ntdbms\storeng\dfs\process\subproc.cpp 444SOS_Task::Param::Execute e:\sql11_main_t\sql\common\dk\sos\include\sos.inl 8564SOS_Scheduler::RunTask e:\sql11_main_t\sql\common\dk\sos\src\scheduler.cpp 976SOS_Scheduler::ProcessTasks e:\sql11_main_t\sql\common\dk\sos\src\scheduler.cpp 852SchedulerManager::WorkerEntryPoint e:\sql11_main_t\sql\common\dk\sos\src\node.cpp 1809SystemThread::RunWorker e:\sql11_main_t\sql\common\dk\sos\include\worker.inl 823SystemThreadDispatcher::ProcessWorker e:\sql11_main_t\sql\common\dk\sos\src\node.cpp 449Assert in FCB::InitializeReencryptionScan in file fcb.cpp @ 8407Expression: a_dbDEK->GetDbeState () == CSECDEK::x_dbe_DecryptionInProgress || a_dbDEK->GetDbeState () == CSECDEK::x_dbe_EncryptionInProgress