ALTER SERVICE MASTER KEY (Transact-SQL)
變更 SQL Server 執行個體的服務主要金鑰。
語法
ALTER SERVICE MASTER KEY
[ { <regenerate_option> | <recover_option> } ]
|
[ { ADD | DROP } ENCRYPTION BY MACHINE KEY ]
<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
請參閱
參考
RESTORE SERVICE MASTER KEY (Transact-SQL)
BACKUP SERVICE MASTER KEY (Transact-SQL)