Compartir vía


MSSQLSERVER_15581

Se aplica a: SQL Server

Detalles

Attribute Valor
Nombre del producto SQL Server
Id. de evento 15581
Origen de eventos MSSQLSERVER
Componente SQLEngine
Nombre simbólico SEC_NODBMASTERKEYERR
Texto del mensaje Cree una clave maestra en la base de datos o abra la clave maestra en la sesión antes de realizar esta operación.

Explicación

Se produce el error 15581 cuando SQL Server no puede recuperar una base de datos habilitada para el cifrado de datos transparente (TDE). Se registra un mensaje de error como el siguiente en el registro de errores de SQL Server.

2020-01-14 22:16:26.47 spid20s Error: 15581, Gravedad: 16, Estado: 3.
2020-01-14 22:16:26.47 spid20s Cree una clave maestra en la base de datos o abra la clave maestra en la sesión antes de realizar esta operación.

Causa posible

Este problema se produce cuando se quita el cifrado de claves maestras de servicio para la clave maestra de base de datos en la base de datos maestra cuando se ejecuta el comando siguiente:

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

La clave maestra de servicio se usa para cifrar el certificado utilizado por la clave maestra de la base de datos. Cualquier intento de usar la base de datos habilitada para TDE requiere acceso a la clave maestra de la base de datos en la base de datos maestra. Una clave maestra que no esté cifrada por la clave maestra de servicio debe abrirse mediante la instrucción OPEN MASTER KEY (Transact-SQL) junto con una contraseña en cada sesión que necesite acceso a la clave maestra. Como este comando no se puede ejecutar en sesiones del sistema, la recuperación no se puede completar en las bases de datos habilitadas para TDE.

Acción del usuario

Para resolver el problema, habilite el descifrado automático de la clave maestra. Para ello, ejecute los siguientes comandos:

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

Use la consulta siguiente para determinar si el descifrado automático de la clave maestra por medio de la clave maestra de servicio se ha deshabilitado para la base de datos maestra:

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

Si esta consulta devuelve un valor de 0, se ha deshabilitado el descifrado automático de la clave maestra por medio de la clave maestra de servicio.

Información adicional

En algunos casos, es posible que la instancia de SQL Server no responda. Si consulta la vista de administración dinámica sys.dm_exec_requests, observará que el subproceso LogWriter y otros subprocesos que realizan operaciones de DML espera indefinidamente con el valor wait_type WRITELOG. Es posible que otras sesiones también estén en espera mientras intentan obtener bloqueos.