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 服務帳戶名稱。

    警告注意事項注意

    這個選項已過時。 請勿使用。 請改用 SQL Server 組態管理員。

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

    警告注意事項注意

    這個選項已過時。 請勿使用。 請改用 SQL Server 組態管理員。

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

    警告注意事項注意

    這個選項已過時。 請勿使用。 請改用 SQL Server 組態管理員。

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

    警告注意事項注意

    這個選項已過時。 請勿使用。 請改用 SQL Server 組態管理員。

備註

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

SQL Server 2012 會使用 AES 加密演算法來保護服務主要金鑰 (SMK) 及資料庫主要金鑰 (DMK)。 與早期版本中使用的 3DES 相比,AES 是一種較新的加密演算法。 將 Database Engine 執行個體升級至 SQL Server 2012 之後,應該會重新產生 SMK 和 DMK,以將主要金鑰升級至 AES。 如需有關重新產生 DMK 的詳細資訊,請參閱<ALTER MASTER KEY (Transact-SQL)>。

變更 SQL Server 服務帳戶

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

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

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

警告注意事項注意

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

如果您將 SQL 移至另一部電腦,則必須使用相同的服務帳戶來解密 SMK - SQL Server 將自動修正電腦帳戶加密。

權限

需要伺服器的 CONTROL SERVER 權限。

範例

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

ALTER SERVICE MASTER KEY REGENERATE;
GO

請參閱

參考

RESTORE SERVICE MASTER KEY (Transact-SQL)

BACKUP SERVICE MASTER KEY (Transact-SQL)

概念

加密階層