分享方式:


ALTER ASYMMETRIC KEY (Transact-SQL)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics

變更非對稱金鑰的屬性。

Transact-SQL 語法慣例

注意

Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。

語法

ALTER ASYMMETRIC KEY Asym_Key_Name <alter_option>  
  
<alter_option> ::=  
      <password_change_option>   
    | REMOVE PRIVATE KEY   

<password_change_option> ::=  
    WITH PRIVATE KEY ( <password_option> [ , <password_option> ] )  

<password_option> ::=  
      ENCRYPTION BY PASSWORD = 'strongPassword'  
    | DECRYPTION BY PASSWORD = 'oldPassword'  

引數

Asym_Key_Name
這是非對稱金鑰在資料庫中的識別名稱。

REMOVE PRIVATE KEY
從非對稱金鑰移除私密金鑰。不移除公開金鑰。

WITH PRIVATE KEY
變更私密金鑰的保護。

ENCRYPTION BY PASSWORD ='strongPassword'
指定用來保護私密金鑰的新密碼。 password 必須符合執行 SQL Server 執行個體的電腦的 Windows 密碼原則需求。 如果省略這個選項,則由資料庫主要金鑰加密此私密金鑰。

DECRYPTION BY PASSWORD ='oldPassword'
指定目前用來保護私密金鑰的舊密碼。 如果是利用資料庫主要金鑰加密私密金鑰,則不需要這個選項。

備註

如果沒有資料庫主要金鑰,則需要 ENCRYPTION BY PASSWORD 選項,而且如果沒有提供密碼,作業會失敗。 如需如何建立資料庫主要金鑰的相關資訊,請參閱 CREATE MASTER KEY (Transact-SQL)

您可以利用 ALTER ASYMMETRIC KEY 指定 PRIVATE KEY 選項 (如下表所示) 來變更私密金鑰的保護。

變更保護 ENCRYPTION BY PASSWORD DECRYPTION BY PASSWORD
從舊密碼到新密碼 必要 必要
從密碼到主要金鑰 省略 必要
從主要金鑰到密碼 必要 省略

必須先開啟資料庫主要金鑰,才可以利用它來保護私密金鑰。 如需詳細資訊,請參閱 MASTER KEY (Transact-SQL)

若要變更非對稱金鑰的擁有權,請使用 ALTER AUTHORIZATION

權限

若要移除私密金鑰,則需要非對稱金鑰的 CONTROL 權限。

範例

A. 變更私密金鑰的密碼

下列範例會變更用來保護非對稱金鑰 PacificSales09 之私密金鑰的密碼。 新密碼會是 <enterStrongPasswordHere>

ALTER ASYMMETRIC KEY PacificSales09   
    WITH PRIVATE KEY (  
    DECRYPTION BY PASSWORD = '<oldPassword>',  
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>');  
GO  

B. 從非對稱金鑰移除私密金鑰

下列範例會從 PacificSales19 移除私密金鑰,只留下公開金鑰。

ALTER ASYMMETRIC KEY PacificSales19 REMOVE PRIVATE KEY;  
GO  

C. 移除私密金鑰的密碼保護

下列範例會從私密金鑰移除密碼保護,並利用資料庫主要金鑰保護私密金鑰。

OPEN MASTER KEY DECRYPTION BY PASSWORD = '<database master key password>';  
ALTER ASYMMETRIC KEY PacificSales09 WITH PRIVATE KEY (  
    DECRYPTION BY PASSWORD = '<enterStrongPasswordHere>' );  
GO  

另請參閱

CREATE ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
SQL Server 和資料庫加密金鑰 (資料庫引擎)
加密階層
CREATE MASTER KEY (Transact-SQL)
OPEN MASTER KEY (Transact-SQL)
可延伸金鑰管理 (EKM)