ALTER CERTIFICATE (Transact-SQL)

証明書を暗号化するときに使用する秘密キーを変更します。秘密キーが存在しない場合は追加します。Service Broker に対して、証明書を使用できるようにするかどうかを変更します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

ALTER CERTIFICATE certificate_name 
    REMOVE PRIVATE KEY
    |
    WITH PRIVATE KEY ( <private_key_spec> [ ,... ] )
    |
    WITH ACTIVE FOR BEGIN_DIALOG = [ ON | OFF ]

<private_key_spec> ::= 
    FILE = 'path_to_private_key' 
    |
    DECRYPTION BY PASSWORD = 'key_password' 
    |
    ENCRYPTION BY PASSWORD = 'password' 

引数

  • certificate_name
    データベースに認識される証明書の一意な名前を指定します。

  • FILE ='path_to_private_key'
    秘密キーへの完全なパスを、ファイル名を含めて指定します。このパラメータには、ローカル パスまたはネットワーク上の場所を示す UNC パスを指定できます。このファイルには、SQL Server サービス アカウントのセキュリティ コンテキストでアクセスします。このオプションを使用するときには、サービス アカウントに、指定したファイルへのアクセス権があることを確認する必要があります。

  • DECRYPTION BY PASSWORD ='key_password'
    秘密キーの暗号化解除に必要なパスワードを指定します。

  • ENCRYPTION BY PASSWORD ='password'
    データベース内の証明書の秘密キーを暗号化するために使用されるパスワードを指定します。password は、SQL Server のインスタンスを実行しているコンピュータの Windows パスワード ポリシーの要件を満たす必要があります。詳細については、「パスワード ポリシー」を参照してください。

  • REMOVE PRIVATE KEY
    秘密キーをデータベース内で保持しないよう指定します。

  • ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
    Service Broker メッセージ交換の発信側で証明書を使用できるようにします。

説明

秘密キーは、certificate_name で指定する公開キーに対応している必要があります。

DECRYPTION BY PASSWORD 句は、ファイル内のパスワードが NULL パスワードで保護されている場合は省略できます。

データベースに既に存在する証明書の秘密キーをファイルからインポートするとき、その秘密キーはデータベース マスタ キーにより自動的に保護されます。秘密キーをパスワードで保護するには、ENCRYPTION BY PASSWORD 句を使用します。

REMOVE PRIVATE KEY オプションを指定すると、データベースから証明書の秘密キーが削除されます。このオプションは、署名の確認に証明書が使用される場合、または秘密キーを必要としない Service Broker シナリオの場合に指定できます。対称キーを保護する証明書の秘密キーを削除しないでください。

秘密キーがデータベース マスタ キーを使って暗号化される場合は、暗号化解除のパスワードを指定する必要はありません。

重要な注意事項重要

データベースから秘密キーを削除する前には、必ず秘密キーの保存用コピーを作成してください。詳細については、「BACKUP CERTIFICATE (Transact-SQL)」を参照してください。

権限

証明書に対する ALTER 権限が必要です。

A. 証明書のパスワードを変更する

ALTER CERTIFICATE Shipping04 
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'pGF$5DGvbd2439587y',
    ENCRYPTION BY PASSWORD = '4-329578thlkajdshglXCSgf');
GO

B. 秘密キーの暗号化に使用するパスワードを変更する

ALTER CERTIFICATE Shipping11 
    WITH PRIVATE KEY (ENCRYPTION BY PASSWORD = '34958tosdgfkh##38',
    DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%');
GO

C. データベースに存在する証明書の秘密キーをインポートする

ALTER CERTIFICATE Shipping13 
    WITH PRIVATE KEY (FILE = 'c:\\importedkeys\Shipping13',
    DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');
GO

D. 秘密キーの保護をパスワードからデータベース マスタ キーに変更する

ALTER CERTIFICATE Shipping15 
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');
GO