ALTER SERVICE MASTER KEY (Transact-SQL)

變更 SQL Server 執行個體的服務主要金鑰。

主題連結圖示Transact-SQL 語法慣例

語法

ALTER SERVICE MASTER KEY 
    [ { <regenerate_option> | <recover_option> } ] [;]

<regenerate_option> ::=
    [ FORCE ] REGENERATE

<recover_option> ::=
    { WITH OLD_ACCOUNT = 'account_name' , OLD_PASSWORD = 'password' }
    |    
    { WITH NEW_ACCOUNT = 'account_name' , NEW_PASSWORD = 'password' }

引數

  • FORCE
    指出即使有遺失資料的風險,仍應重新產生服務主要金鑰。如需詳細資訊,請參閱這個主題稍後的變更 SQL Server 服務帳戶。

  • REGENERATE
    指出應重新產生服務主要金鑰。

  • OLD_ACCOUNT ='account_name'
    指定舊的 Windows 服務帳戶的名稱。

  • OLD_PASSWORD ='password'
    指定舊的 Windows 服務帳戶的密碼。

  • NEW_ACCOUNT ='account_name'
    指定新的 Windows 服務帳戶的名稱。

  • NEW_PASSWORD ='password'
    指定新的 Windows 服務帳戶的密碼。

備註

第一次需要利用服務主要金鑰來加密連結伺服器密碼、認證或資料庫主要金鑰時,會自動產生服務主要金鑰。服務主要金鑰是以本機電腦金鑰或 Windows 資料保護 API 加密。這個 API 使用一個衍生自 SQL Server 服務帳戶之 Windows 認證的金鑰。

服務主要金鑰只能由建立它時所在的服務帳戶解密,或只能由可以存取該服務帳戶之 Windows 認證的主體解密。因此,如果您變更 SQL Server 服務執行時所在的 Windows 帳戶,您也必須啟用由新帳戶執行的服務主要金鑰解密作業。

變更 SQL Server 服務帳戶

若要變更 SQL Server 服務帳戶,使用 SQL Server 組態管理員。若要管理服務帳戶的變更,SQL Server 會儲存一個受到電腦帳戶 (具備授與 SQL Server 服務群組的必要權限) 保護的重複服務主要金鑰複本。如果電腦經過重建,服務帳戶先前所使用的相同網域使用者可以復原服務主要金鑰。這不適用於本機帳戶或本機系統、本機服務,或網路服務帳戶。當您要將 SQL Server 移動到另一台電腦時,請使用備份和還原來移轉服務主要金鑰。

REGENERATE 片語會重新產生服務主要金鑰。當重新產生服務主要金鑰時,SQL Server 會解密所有利用它加密的金鑰,然後利用新的服務主要金鑰來加密這些金鑰。這是一項需要大量資源的作業。除非已危害金鑰,否則,您應該將這項作業安排在低需求時進行。如果任何一項解密失敗,整個陳述式便會失敗。

即使處理序無法擷取目前的主要金鑰,或無法解密所有利用該金鑰加密的私密金鑰,FORCE 選項仍會使金鑰重新產生處理序繼續進行。請只在重新產生作業失敗或無法利用 RESTORE SERVICE MASTER KEY 陳述式來還原服務主要金鑰時,才使用 FORCE。

警告注意事項警告

服務主要金鑰是 SQL Server 加密階層的根。服務主要金鑰會直接或間接保護樹狀中的所有其他金鑰和秘密。如果在強制重新產生作業進行期間某相依金鑰無法解密,由該金鑰維護其安全的資料便會遺失。

MACHINE KEY 選項可讓您加入或卸除使用電腦金鑰的加密。

權限

需要伺服器的 CONTROL SERVER 權限。

範例

下列範例會重新產生服務主要金鑰。

ALTER SERVICE MASTER KEY REGENERATE;
GO

變更記錄

更新的內容

已在「語法」一節中移除錯誤的 ENCRYPTION BY MACHINE 文字。