ALTER MASTER KEY (Transact-SQL)

變更資料庫主要金鑰的屬性。

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

語法

ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'

<encryption_option> ::=
    ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
    | 
    DROP ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }

引數

  • PASSWORD ='password'
    指定用於加密或解密資料庫主要金鑰的密碼。 password 必須符合執行 SQL Server 執行個體之電腦的 Windows 密碼原則需求。

備註

REGENERATE 選項會重新建立資料庫主要金鑰和它保護的所有金鑰。 會先利用舊的主要金鑰解密這些金鑰,然後利用新的主要金鑰加密它們。 除非已危害到主要金鑰,否則,這項需要大量資源的作業應該安排在低需求時進行。

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

當使用 FORCE 選項時,即使主要金鑰無法使用或伺服器無法解密所有加密私密金鑰,仍會繼續重新產生金鑰。 如果無法開啟主要金鑰,請利用 RESTORE MASTER KEY 陳述式,從備份還原主要金鑰 請只在主要金鑰無法擷取或解密失敗時才使用 FORCE 選項。 只由無法擷取的金鑰加密的資訊會遺失。

DROP ENCRYPTION BY SERVICE MASTER KEY 選項會移除服務主要金鑰對資料庫主要金鑰所執行的加密。

ADD ENCRYPTION BY SERVICE MASTER KEY 會造成利用服務主要金鑰來加密主要金鑰的副本,並將該副本同時儲存在目前資料庫和 master 中。

權限

需要資料庫的 CONTROL 權限。 如果已利用密碼加密資料庫主要金鑰,則還需要知道該密碼。

範例

下列範例會建立 AdventureWorks 的新資料庫主要金鑰,並在加密階層中重新加密在它下方的金鑰。

USE AdventureWorks2012;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';
GO

請參閱

參考

CREATE MASTER KEY (Transact-SQL)

OPEN MASTER KEY (Transact-SQL)

CLOSE MASTER KEY (Transact-SQL)

BACKUP MASTER KEY (Transact-SQL)

RESTORE MASTER KEY (Transact-SQL)

DROP MASTER KEY (Transact-SQL)

CREATE DATABASE (Transact-SQL)

概念

加密階層

資料庫卸離與附加 (SQL Server)