Simptomai
Tarkime, kad galite reguliariai įjungti ir išjungti duomenų bazės šifravimą ir taip pat reguliariai keisti duomenų bazės šifravimo raktus "SQL Server" 2012. Pagal šį scenarijų duomenų bazė gali būti užšifruota įjungus šifravimą. Jei pakeisite šifravimo raktus, gali įvykti tvirtinimas.
Priežastis
Ši problema kyla dėl to, kad jei duomenų bazės šifravimo raktas (DEK) nėra užkoduota būsena, o raktas pakeičiamas, kitas raktas nukopijuoja rakto "DEK" dalį, tačiau jis netinkamai kopijuoja šifravimo būsenos parametrą. "SQL Server 2012", po iššifravimo nuskaitymo, failo valdiklio blokavimo (FCB) antraštė yra laikoma ir DEK pašalinama tik tada, kai raktas yra numestas. Kai šifravimas išjungtas, yra esminis pakeitimas, tada bandote įjungti šifravimą, dinaminio valdymo rodinys (DMV) rodo, kad šifravimas užbaigtas. Tačiau šifravimo žvalgymas neatliekamas ir puslapiai paliekami neužšifruoti.
Sprendimas
Kaupiamojo naujinimo informacija
SQL serverio 2012
Šios problemos taisymas pirmą kartą buvo išleistas 1 kaupiamąjį naujinimą. Jei norite gauti daugiau informacijos apie tai, kaip gauti šį kaupiamojo naujinimo paketą, skirtą "SQL Server 2012", spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
2679368 Kaupiamojo naujinimo paketas 1 SQL serverio 2012Pastaba Kadangi komponavimo versijos yra kumuliacinės, kiekviena nauja pataisų versija yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio SQL serverio 2012 pataisų leidimo. Rekomenduojame apsvarstyti, kaip taikyti naujausią pataisų leidimą, kuriame yra šios karštosios pataisos. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
2692828 "SQL Server 2012" komponavimo versijos, išleistos po "SQL Server" 2012 išleidimo
Statusą
"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.
Sprendimas
Norėdami išspręsti šią problemą, palikite šifravimo raktą kaskart įjungus šifravimą į duomenų bazę.
Daugiau informacijos
Skambučių rietuvės informacija
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