Поделиться через


MSSQLSERVER_15581

Область применения: SQL Server

Сведения

Атрибут Значение
Название продукта SQL Server
ИД события 15581
Источник событий MSSQLSERVER
Компонент SQLEngine
Символическое имя SEC_NODBMASTERKEYERR
Текст сообщения Создайте главный ключ в базе данных или откройте его в сеансе до выполнения этой операции.

Описание

Ошибка 15581 возникает, когда SQL Server не может восстановить базу данных, которая включена для прозрачного шифрования данных (TDE). Сообщение об ошибке, как показано ниже, регистрируется в журнале ошибок SQL Server

Ошибка 2020-01-14 22:16:26.47 spid20s: 15581, серьезность: 16, состояние: 3.
2020-01-14 22:16:26.47 spid20s Создайте главный ключ в базе данных или откройте его в сеансе до выполнения этой операции.

Возможная причина

Эта проблема возникает, когда при выполнении следующей команды отменяется шифрование главного ключа базы данных в базе данных master с помощью главного ключа службы:

Use master
go
alter master key drop encryption by service master key

Главный ключ службы применяется для шифрования сертификата, используемого главным ключом базы данных. Для использования базы данных с включенным шифрованием TDE требуется доступ к главному ключу базы данных в базе данных master. Главный ключ, который не зашифрован с помощью главного ключа службы, следует открывать с помощью инструкции OPEN MASTER KEY (Transact-SQL) и пароля в каждом сеансе, требующем доступа к главному ключу. Так как эта команда не может выполняться в системных сеансах, восстановление баз данных с включенным шифрованием TDE невозможно.

Действие пользователя

Чтобы устранить эту проблему, включите автоматическую расшифровку главного ключа. Для этого выполните следующие команды.

Use master
go
open master key DECRYPTION BY PASSWORD = 'password'
alter master key add encryption by service master key

Чтобы определить, отключена ли автоматическая расшифровка главного ключа с помощью главного ключа службы для базы данных master, используйте следующий запрос:

select is_master_key_encrypted_by_server from sys.databases where name = 'master'

Если этот запрос возвращает значение 0, автоматическая расшифровка главного ключа с помощью главного ключа службы отключена.

Дополнительные сведения

В некоторых случаях экземпляр SQL Server может не отвечать. При запросе к динамическому административному представлению sys.dm_exec_requests видно, что поток LogWriter и другие потоки, выполняющие операции DML, ожидают неограниченное время с WRITELOG wait_type. Другие сеансы также могут находиться в ожидании при попытке получения блокировок.