次の方法で共有


ALTER ASYMMETRIC KEY (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Microsoft Fabric SQL Database

非対称キーのプロパティを変更します。

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 は、Windows のパスワード ポリシーが SQL Server のインスタンスを実行するコンピューターに要求する条件を満足する必要があります。 このオプションを省略した場合、秘密キーはデータベースのマスター キーで暗号化されます。

DECRYPTION BY PASSWORD ='oldPassword'
現在秘密キーが保護されている、古いパスワードを指定します。 秘密キーがデータベースのマスター キーで暗号化されている場合は指定する必要はありません。

解説

データベースのマスター キーがない場合は、ENCRYPTION BY PASSWORD オプションを指定する必要があります。パスワードを指定しないと、この操作は失敗します。 データベースのマスター キーを作成する方法の詳細については、「CREATE MASTER KEY (Transact-SQL)」を参照してください。

秘密キーの保護を変更するには、ALTER ASYMMETRIC KEY を使用して、PRIVATE KEY オプションを次のように指定します。

保護の変更対象 ENCRYPTION BY PASSWORD DECRYPTION BY PASSWORD
古いパスワードから新しいパスワードへ 必須 必須
パスワードからマスター キーへ [省略] 必須
マスター キーからパスワードへ 必須 [省略]

データベースのマスター キーを秘密キーの保護に使用するには、マスター キーを先に開いておく必要があります。 詳細については、「OPEN 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)