MSSQLSERVER_15581
Aplica-se: SQL Server
Detalhes
Atributo | Valor |
---|---|
Nome do produto | SQL Server |
ID do evento | 15581 |
Origem do Evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbólico | SEC_NODBMASTERKEYERR |
Texto da mensagem | Crie uma chave mestra no banco de dados ou abra a chave mestra na sessão antes de executar esta operação. |
Explicação
O erro 15581 é gerado quando o SQL Server não consegue recuperar um banco de dados habilitado para TDE (Transparent Data Encryption). Uma mensagem de erro como a seguinte é registrada no log de erros do SQL Server
2020-01-14 22:16:26.47 spid20s Erro: 15581, Gravidade: 16, Estado: 3.
2020-01-14 22:16:26.47 spid20s Crie uma chave mestra no banco de dados ou abra a chave mestra na sessão antes de executar esta operação.
Causa possível
Esse problema ocorre quando a criptografia da chave mestra de serviço para a chave mestra do banco de dados no banco de dados mestre é removida quando o seguinte comando é executado:
Use master
go
alter master key drop encryption by service master key
A chave mestra de serviço é usada para criptografar o certificado usado pela chave mestra do banco de dados. Qualquer tentativa de usar o banco de dados habilitado para TDE requer acesso à chave mestra do banco de dados no banco de dados mestre. Uma chave mestra que não é criptografada pela chave mestra de serviço deve ser aberta usando a instrução OPEN MASTER KEY (Transact-SQL) com uma senha em cada sessão que requer acesso à chave mestra. Como esse comando não pode ser executado em sessões do sistema, a recuperação não pode ser concluída em bancos de dados habilitados para TDE.
Ação do usuário
Para resolver o problema, habilite a descriptografia automática da chave mestra. Para fazer isso, execute os seguintes comandos:
Use master
go
open master key DECRYPTION BY PASSWORD = 'password'
alter master key add encryption by service master key
Use a consulta a seguir para determinar se a descriptografia automática da chave mestra pela chave mestra de serviço foi desabilitada para o banco de dados mestre:
select is_master_key_encrypted_by_server from sys.databases where name = 'master'
Se essa consulta retornar um valor 0, a descriptografia automática da chave mestra pela chave mestra de serviço foi desabilitada.
Mais informações
Em alguns casos, a instância do SQL Server pode parecer sem resposta. Se você consultar a exibição de gerenciamento dinâmico sys.dm_exec_requests
, observará que o thread LogWriter
e outros threads que estão executando operações DML estão aguardando indefinidamente com WRITELOG wait_type. Outras sessões também podem estar aguardando enquanto tentam obter bloqueios.