共用方式為


ALTER MASTER KEY (Transact-SQL)

適用於:Microsoft Fabric 中的 SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) SQL Database

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

Transact-SQL 語法慣例

Syntax

SQL Server 的語法

-- Syntax for SQL Server
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' }

Microsoft Fabric 中 Azure SQL 資料庫 和 SQL 資料庫的語法

-- Syntax for Azure SQL Database
-- Note: DROP ENCRYPTION BY SERVICE MASTER KEY is not supported on Azure SQL Database.

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 { PASSWORD = 'password' }

Azure Synapse Analytics 和 Analytics Platform System (PDW) 的語法

-- Syntax for Azure Synapse Analytics and Analytics Platform System

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
    |
    DROP ENCRYPTION BY SERVICE MASTER KEY

引數

PASSWORD ='password'

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

備註

REGENERATE 選項會重新建立資料庫主要金鑰和它保護的所有金鑰。 會先利用舊的主要金鑰解密這些金鑰,然後利用新的主要金鑰加密它們。 除非主要密鑰遭到入侵,否則此耗用大量資源的作業應排程在低需求期間。

SQL Server 2012 (11.x) 是使用 AES 加密演算法來保護服務主要金鑰 (SMK) 及資料庫主要金鑰 (DMK)。 與舊版中使用的 3DES 相比,AES 是一種較新的加密演算法。 將 資料庫引擎 實例升級至 SQL Server 2012 (11.x)之後,應該重新產生 SMK 和 DMK,才能將主要密鑰升級至 AES。 如需重新產生 SMK 的詳細資訊,請參閱 ALTER SERVICE MASTER KEY

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

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

Azure SQL 資料庫 不支援 DROP ENCRYPTION BY SERVICE MASTER KEY。

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

權限

需要資料庫上的 CONTROL 權限。 如果資料庫主要密鑰是以密碼加密,則也需要該密碼的知識。

範例

下列範例會建立 AdventureWorks 的新資料庫主要金鑰,並在加密階層中重新加密在它下方的金鑰。 以強式唯一密碼取代 <secure password>

USE AdventureWorks2022;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO

範例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

下列範例會建立 AdventureWorksPDW2012 的新資料庫主要金鑰,並在加密階層中重新加密其下方的金鑰。 以強式唯一密碼取代 <secure password>

USE master;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO