MSSQLSERVER_15581
Si applica a: SQL Server
Dettagli
Attributo | Valore |
---|---|
Nome prodotto | SQL Server |
ID evento | 15581 |
Origine evento | MSSQLSERVER |
Componente | SQLEngine |
Nome simbolico | SEC_NODBMASTERKEYERR |
Testo del messaggio | Creare una chiave master nel database o aprire la chiave master nella sessione prima di eseguire questa operazione. |
Spiegazione
L'errore 15581 viene generato quando SQL Server non è in grado di recuperare un database abilitato per Transparent Data Encryption (TDE). Viene registrato un messaggio di errore simile al seguente nel log degli errori di SQL Server
2020-01-14 22:16:26.47 spid20s Error: 15581, Severity: 16, State: 3.
2020-01-14 22:16:26.47 spid20s Creare una chiave master nel database o aprire la chiave master nella sessione prima di eseguire questa operazione.
Possibile causa
Questo problema si verifica quando la crittografia della chiave master del servizio per la chiave master del database nel database master viene rimossa quando viene eseguito il comando seguente:
Use master
go
alter master key drop encryption by service master key
La chiave master del servizio viene usata per crittografare il certificato usato dalla chiave master del database. Qualsiasi tentativo di usare il database abilitato per TDE richiede l'accesso alla chiave master del database nel database master. Per aprire una chiave master non crittografata con la chiave master del servizio, è necessario usare l'istruzione OPEN MASTER KEY (Transact-SQL) insieme a una password per ogni sessione che richiede l'accesso alla chiave master. Poiché questo comando non può essere eseguito nelle sessioni di sistema, non è possibile completare il ripristino nei database abilitati per TDE.
Azione utente
Per risolvere il problema, abilitare la decrittografia automatica della chiave master. A tale scopo, eseguire i seguenti comandi:
Use master
go
open master key DECRYPTION BY PASSWORD = 'password'
alter master key add encryption by service master key
Usare la query seguente per determinare se la decrittografia automatica della chiave master con la chiave master del servizio è stata disabilitata per il database master:
select is_master_key_encrypted_by_server from sys.databases where name = 'master'
Se questa query restituisce il valore 0, la decrittografia automatica della chiave master con la chiave master del servizio è stata disabilitata.
Ulteriori informazioni
In alcuni casi, l'istanza di SQL Server potrebbe non rispondere. Se si esegue una query sulla vista a gestione dinamica sys.dm_exec_requests
, si noterà che il thread di LogWriter
e gli altri thread che eseguono operazioni DML sono in attesa illimitata con wait_type WRITELOG. Anche altre sessioni potrebbero essere in attesa mentre tentano di ottenere blocchi.