Отнася се за
SQL Server 2012 Enterprise Core SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web

Симптоми

Приемете, че редовно включвате и изключвате шифроване на база данни, а също така и периодично променяте ключовете за шифроване на базата данни в SQL Server 2012. В този случай базата данни може да не е шифрована при включване на шифроването. Ако промените ключовете за шифроване, може да възникне твърдение.

Причина

Този проблем възниква, защото ако ключът за шифроване на бази данни (DEK) не е в шифровано състояние и ключът се промени, следващата актуализация на ключа копира ключовата част на DEK, но не копира настройката правилно. В SQL Server 2012, след сканиране за дешифриране е запазена заглавката на DEK в блока за управление на файлове (FCB) и DEK се премахва само когато ключът е отпаднал.  Когато шифроването е изключено, има ключова промяна и след това се опитвате да включите шифроването, Динамичният изглед за управление (DMV) показва, че шифроването е завършило. Но не се извършва сканиране за шифроване и страниците са оставени нешифровани.

Решение

Информация за сборна актуализация

SQL Server 2012

Корекцията за този проблем е издадена за първи път в сборна актуализация 1. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2012, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:

2679368 Кумулативна актуализация на пакета 1 за SQL Server 2012Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички актуални корекции и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2012 Fix. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2692828 SQL Server 2012 компилации, които са издадени след издаването на SQL Server 2012

Състоянието

Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".

Заобиколно решение

За да заобиколите този проблем, изхвърлете ключа за шифроване всеки път, когато изключите шифроването на база данни.

Повече информация

Информация за стека на повикванията

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 

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.