共用方式為


MSSQLSERVER_15581

適用於:SQL Server

詳細資料

屬性
產品名稱 SQL Server
事件識別碼 15581
事件來源 MSSQLSERVER
元件 SQLEngine
符號名稱 SEC_NODBMASTERKEYERR
訊息文字 執行此作業之前,請在資料庫中建立主要金鑰或在工作階段中開啟主要金鑰。

說明

當 SQL Server 無法復原已啟用透明數據加密的資料庫時,就會引發錯誤 15581。 下列錯誤訊息會記錄在 SQL Server 錯誤記錄檔中

2020-01-14 22:16:26.47 spid20s 錯誤:15581,嚴重性:16,狀態:3。
2020-01-14 22:16:26.47 spid20s 請在資料庫中建立主要密鑰,或在會話中開啟主要密鑰,再執行這項作業。

可能的原因

執行下列命令時,會移除 master 資料庫中資料庫主要金鑰的服務主要金鑰加密時,就會發生此問題:

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

服務主要金鑰可用來加密資料庫主要金鑰所使用的憑證。 任何嘗試使用已啟用 TDE 的資料庫都需要存取 master 資料庫中的資料庫主要密鑰。 服務主要金鑰未加密的主要金鑰,必須使用 OPEN MASTER KEY (Transact-SQL) 語句,以及每個需要存取主要密鑰的會話的密碼來開啟。 由於此命令無法在系統會話上執行,因此無法在啟用 TDE 的資料庫上完成復原。

使用者動作

若要解決此問題,請啟用主要密鑰的自動解密。 若要這樣做,請執行以下命令:

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

使用下列查詢來判斷是否已針對 master 資料庫停用服務主要金鑰自動解密主要金鑰:

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

如果此查詢傳回值 0,服務主要金鑰的自動解密已停用。

其他相關資訊

在某些情況下,SQL Server 的實例可能會沒有回應。 如果您查詢 sys.dm_exec_requests 動態管理檢視,您會發現 LogWriter 執行 DML 作業的線程和其他線程會無限期地等待 WRITELOG wait_type。 其他工作階段也可能在嘗試取得鎖定時等候。