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。 其他工作階段也可能在嘗試取得鎖定時等候。