Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

증상

데이터베이스에서 정기적으로 암호화를 설정/해제 하 고 SQL Server 2012에서 데이터베이스의 암호화 키를 정기적으로 변경 한다고 가정 합니다. 이 시나리오에서는 암호화를 설정할 때 데이터베이스가 암호화 되지 않을 수 있습니다. 암호화 키를 변경 하면 어설션이 발생할 수 있습니다.

원인

이 문제는 DEK (데이터베이스 암호화 키)가 암호화 상태에 있지 않고 키가 변경 되는 경우 키의 다음 업데이트는 DEK의 키 부분을 복사 하지만, 암호화 상태 설정을 올바르게 복사 하지 않기 때문에 발생 합니다. SQL Server 2012에서 암호 해독 검사 후 FCB (파일 제어 블록) 헤더의 DEK는 유지 되 고 키가 삭제 된 경우에만 DEK가 제거 됩니다.  암호화가 해제 된 경우 키를 변경한 다음 암호화를 설정 하려고 하면 DMV (동적 관리 뷰)에 암호화가 완료 된 것으로 표시 됩니다. 그러나 암호화 검색은 수행 되지 않으며 페이지는 암호화 되지 않은 상태로 남아 있습니다.

해결 방법

누적 업데이트 정보

SQL Server 2012

이 문제에 대 한 픽스는 먼저 누적 업데이트 1에서 릴리스 되었습니다. SQL Server 2012의이 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

2679368 SQL Server 2012의 누적 업데이트 패키지 1참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2012 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.

2692828 SQL Server 2012이 출시 된 이후 출시 된 SQL Server 2012 빌드

상태

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 

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×