Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Details
| Attribute | Value |
|---|---|
| Productnaam | SQL Server |
| Gebeurtenis-id | 15581 |
| Bron van gebeurtenis | MSSQLSERVER |
| Onderdeel | SQLEngine |
| Symbolische naam | SEC_NODBMASTERKEYERR |
| Berichttekst | Maak een hoofdsleutel in de database of open de hoofdsleutel in de sessie voordat u deze bewerking uitvoert. |
Explanation
Fout 15581 wordt geactiveerd wanneer SQL Server een database niet kan herstellen die is ingeschakeld voor transparante data-encryptie (TDE). Een foutmelding zoals de volgende wordt gelogd in het SQL Server foutlogboek
2020-01-14 22:16:26.47 spid20s Fout: 15581, ernst: 16, staat: 3.
2020-01-14 22:16:26.47 spid20s Maak alsjeblieft een hoofdsleutel aan in de database of open de hoofdsleutel in de sessie voordat je deze bewerking uitvoert.
Mogelijke oorzaak
Dit probleem doet zich voor wanneer de versleuteling van de master key van de database in de masterdatabase wordt verwijderd wanneer het volgende commando wordt uitgevoerd:
Use master
go
alter master key drop encryption by service master key
De service-hoofdsleutel wordt gebruikt om het certificaat te versleutelen dat door de database-hoofdsleutel wordt gebruikt. Elke poging om de TDE-geschikte database te gebruiken vereist toegang tot de database-hoofdsleutel in de hoofddatabase. Een hoofdsleutel die niet door de diensthoofdsleutel is versleuteld, moet worden geopend met behulp van de OPEN MASTER KEY (Transact-SQL) -instructie samen met een wachtwoord voor elke sessie die toegang tot de hoofdsleutel vereist. Omdat dit commando niet op systeemsessies kan worden uitgevoerd, kan herstel niet worden uitgevoerd op TDE-geschikte databases.
Gebruikersactie
Om het probleem op te lossen, schakel automatische ontsleuteling van de hoofdsleutel in. Gebruik hiervoor de volgende opdrachten:
Use master
go
open master key DECRYPTION BY PASSWORD = 'password'
alter master key add encryption by service master key
Gebruik de volgende query om te bepalen of automatische ontsleuteling van de hoofdsleutel door de servicehoofdsleutel is uitgeschakeld voor de hoofddatabase:
select is_master_key_encrypted_by_server from sys.databases where name = 'master'
Als deze query een waarde van 0 teruggeeft, werd de automatische ontsleuteling van de hoofdsleutel door de servicehoofdsleutel uitgeschakeld.
Meer informatie
In sommige gevallen kan de instantie van SQL Server niet reageren. Als je een query in de dynamische beheerweergave zoekt sys.dm_exec_requests , merk je dat de LogWriter thread en andere threads die DML-operaties uitvoeren onbeperkt wachten met WRITELOG wait_type. Andere sessies kunnen ook wachten terwijl ze proberen sloten te krijgen.