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. Другие сеансы также могут находиться в ожидании при попытке получения блокировок.