MSSQLSERVER_15581

Gäller för:SQL Server

Details

Attribute Value
Produktnamn SQL Server
Händelse-ID 15581
Händelsekälla MSSQLSERVER
Component SQLEngine
Symboliskt namn SEC_NODBMASTERKEYERR
Meddelandetext Skapa en huvudnyckel i databasen eller öppna huvudnyckeln i sessionen innan du utför den här åtgärden.

Explanation

Fel 15581 uppstår när SQL Server inte kan återställa en databas som är aktiverad för transparent datakryptering (TDE). Ett felmeddelande som följande loggas i SQL Server fellogg

2020-01-14 22:16:26.47 spid20s Fel: 15581, Allvarlighet: 16, Delstat: 3.
2020-01-14 22:16:26.47 spid20s Vänligen skapa en huvudnyckel i databasen eller öppna huvudnyckeln i sessionen innan du utför denna operation.

Möjlig orsak

Detta problem uppstår när service master key-kryptering för databasens masternyckel i masterdatabasen tas bort när följande kommando körs:

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

Tjänstehuvudnyckeln används för att kryptera certifikatet som används av databasens huvudnyckel. Varje försök att använda den TDE-aktiverade databasen kräver åtkomst till databasens huvudnyckel i huvuddatabasen. En huvudnyckel som inte är krypterad av tjänstens huvudnyckel måste öppnas med hjälp av OPEN MASTER KEY (Transact-SQL) -satsen tillsammans med ett lösenord för varje session som kräver åtkomst till huvudnyckeln. Eftersom detta kommando inte kan köras i systemsessioner kan återställning inte slutföras på TDE-aktiverade databaser.

Användaråtgärd

För att lösa problemet, aktivera automatisk dekryptering av huvudnyckeln. Gör detta genom att köra följande kommando:

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

Använd följande fråga för att avgöra om automatisk dekryptering av huvudnyckeln med tjänstehuvudnyckeln inaktiverades för huvuddatabasen:

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

Om denna fråga returnerar värdet 0 inaktiverades automatisk dekryptering av huvudnyckeln av tjänstehuvudnyckeln.

Mer information

I vissa fall kan instansen av SQL Server verka oresponsiv. Om du frågar sys.dm_exec_requests i dynamisk hanteringsvy märker du att tråden LogWriter och andra trådar som utför DML-operationer väntar obegränsat med WRITELOG wait_type. Andra sessioner kan också vänta medan de försöker få tag på lås.