Vzťahuje sa na
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

Príznaky

Predpokladajme, že pravidelne zapnete alebo vypnete šifrovanie v databáze a zároveň pravidelne meníte šifrovacie kľúče v databáze na serveri SQL Server 2012. V tomto scenári je možné, že databáza nie je zašifrovaná pri zapnutí šifrovania. Ak zmeníte šifrovacie kľúče, môže dôjsť k tvrdeniu.

Príčina

Tento problém sa vyskytuje, pretože v prípade, ak sa šifrovací kľúč databázy (DEK) nenachádza v šifrovanom stave a kľúč sa zmení, ďalšia aktualizácia klávesu skopíruje kľúčovú časť DEK, ale nekopíruje správne nastavenie stavu šifrovania. V SQL Server 2012 po dešifrovaní scan sa DEK v hlavičke súboru Control Block (FCB) zachová a DEK sa odstráni iba vtedy, keď sa kľúč vynechá.  Keď je šifrovanie vypnuté, je tu kľúčová zmena a potom sa pokúsite zapnúť šifrovanie, zobrazenie dynamického manažmentu (DMV) zobrazuje, že šifrovanie sa dokončilo. Kontrola šifrovania sa však nevykonala a strany nie sú zašifrované.

Riešenie

Kumulatívna aktualizácia informácií

SQL Server 2012

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 1. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií pre SQL Server 2012 nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2679368 Kumulatívna aktualizácia balíka 1 pre SQL Server 2012Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2012 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

2692828 Zostavy SQL servera 2012, ktoré boli vydané po vydaní SQL servera 2012

Stav

Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.

Alternatívne riešenie

Ak chcete tento problém obísť, presunutím šifrovacieho kľúča zakaždým, keď vypnete šifrovanie v databáze.

Ďalšie informácie

Informácie o zásobníku hovoru

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 

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.