TDE 사용 데이터베이스가 SQL Server 복구되지 않을 수 있습니다.

이 문서에서는 SMK(서비스 master 키)에서 master 키의 자동 암호화가 제거될 때 TDE 사용 데이터베이스가 복구되지 않을 수 있는 문제를 resolve 수 있습니다.

적용 대상: SQL Server 2008 Enterprise, SQL Server 2008 R2 Enterprise
원래 KB 번호: 2666213

증상

Microsoft SQL Server 2008 및 Microsoft SQL Server 2008 R2에서는 TDE(투명한 데이터베이스 암호화)를 사용하도록 설정된 데이터베이스가 복구되지 않을 수 있습니다. 또한 다음 오류 메시지가 SQL Server 오류 로그에 기록될 수 있습니다.

2012-01-14 22:16:26.47 spid20s 오류: 15581, 심각도: 16, 상태: 3.
2012-01-14 22:16:26.47 spid20s 데이터베이스에 master 키를 만들거나 이 작업을 수행하기 전에 세션에서 master 키를 여세요.

원인

이 문제는 다음 명령을 실행할 때 master 데이터베이스의 데이터베이스 master 키에 대한 서비스 master 키 암호화가 제거될 때 발생합니다.

USE MASTER
GO
ALTER MASTER KEY DROP ENCRYPTION BY SERVICE MASTER KEY

DMK(데이터베이스 master 키)가 처음 만들어지면 SMK를 사용하여 자동으로 암호화됩니다.

데이터베이스 master 키는 투명한 데이터베이스 암호화 기능에 사용되는 인증서를 암호화하는 데 사용됩니다. TDE 사용 데이터베이스를 사용하려면 인증서 및 master 데이터베이스의 데이터베이스 master 키에 액세스해야 합니다. 기본 구성에서 DMK는 SMK에서 암시적으로 열립니다. 서비스 master 키로 암호화되지 않은 master 키는 master 키에 액세스해야 하는 각 세션의 암호와 함께 문을 사용하여 OPEN MASTER KEY 명시적으로 열어야 합니다.

데이터베이스 복구는 시스템 세션에서 발생합니다. 이러한 세션에서 인증서 및 DMK를 열 수 없는 경우 SMK에 의한 DMK의 자동 암호 해독이 제거된 경우 TDE 사용 데이터베이스에서 복구를 완료할 수 없습니다. 이 시나리오에서 데이터베이스는 복구 보류 중으로 표시됩니다.

해결 방법

이 문제를 resolve master 키의 자동 암호 해독을 사용하도록 설정합니다. 이렇게 하려면 다음 명령을 실행합니다.

USE MASTER
GO
OPEN MASTER KEY DECRYPTION BY PASSWORD = '<password>'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY

데이터베이스를 오프라인으로 전환하고 명령을 사용하여 온라인 상태로 전환합니다 ALTER DATABASE <databasename> SET ONLINE .

다음 쿼리를 사용하여 서비스 master 키의 master 키 자동 암호 해독이 master 데이터베이스에 대해 비활성화되었는지 여부를 확인합니다.

SELECT is_master_key_encrypted_by_server FROM sys.databases WHERE NAME = 'master'

이 쿼리가 0 값을 반환하는 경우 서비스 master 키로 master 키의 자동 암호 해독을 사용하지 않도록 설정했습니다.