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.