ALTER ASYMMETRIC KEY (Transact-SQL)

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

トピック リンク アイコンTransact-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 ='stongPassword'
    秘密キーを保護するための新しいパスワードを指定します。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;
ALTER ASYMMETRIC KEY PacificSales09 WITH PRIVATE KEY (
    DECRYPTION BY PASSWORD = '<enterStrongPasswordHere>' );
GO