Platí pro
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

Příznaky

Předpokládejme, že se šifrování v databázi pravidelně zapíná a vypíná a také pravidelně mění šifrovací klíče v databázi serveru SQL Server 2012. V tomto případě nemusí být databáze při zapnutí šifrování zašifrovaná. Pokud změníte šifrovací klíče, může dojít ke kontrolnímu výrazu.

Příčina

K tomuto problému dochází, protože pokud šifrovací klíč databáze (DEK) není v šifrovaném stavu a klíč se změní, zkopíruje se do další aktualizace klíče část klíče DEK, ale nezkopíruje se nastavení stavu šifrování správně. V systému SQL Server 2012 se po dešifrování zachová DEK v záhlaví řídicího bloku (FCB) a DEK se odebere jenom v případě, že je klíč vyřazený.  Pokud je šifrování vypnuté, dojde ke změně klíče a pokusíte se zapnout šifrování, ale zobrazení dynamické správy (DMV) Toto šifrování dokončilo. Vyhledávání šifrování se ale neprovádí a stránky nešifrovaná.

Řešení

Informace o kumulativní aktualizaci

SQL Server 2012

Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 1. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2012, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

2679368 Kumulativní aktualizace 1 pro SQL Server 2012Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2012 Oprava. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

2692828 Buildy SQL Server 2012, které byly vydány po vydání SQL Server 2012

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Řešení

Tento problém vyřešíte vyřazením šifrovacího klíče při každém vypnutí šifrování databáze.

Další informace

Informace o zásobníku volání

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 

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.