ALTER CERTIFICATE (Transact-SQL)ALTER CERTIFICATE (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

証明書の秘密キーの暗号化に使用するパスワードを変更したり、秘密キーを削除したり、秘密キーが存在しない場合はインポートします。Changes the password used to encrypt the private key of a certificate, removes the private key, or imports the private key if none is present. Service BrokerService Broker に対して、証明書を使用できるようにするかどうかを変更します。Changes the availability of a certificate to Service BrokerService Broker.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

-- Syntax for SQL Server and Azure SQL Database  
  
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' | BINARY = private_key_bits }  
         [ , DECRYPTION BY PASSWORD = 'current_password' ]  
         [ , ENCRYPTION BY PASSWORD = 'new_password' ]  
      }  
    |  
      {  
         [ DECRYPTION BY PASSWORD = 'current_password' ]  
         [ [ , ] ENCRYPTION BY PASSWORD = 'new_password' ]  
      }  

注意

この機能は現在、Azure Synapse Analytics を対象としたプレビューの段階ですThis feature is currently in preview for Azure Synapse Analytics

-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse  
  
ALTER CERTIFICATE certificate_name   
{  
      REMOVE PRIVATE KEY  
    | WITH PRIVATE KEY (   
        FILE = '<path_to_private_key>',  
        DECRYPTION BY PASSWORD = '<key password>' )
}  

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

引数Arguments

certificate_namecertificate_name
データベースに認識される証明書の一意な名前を指定します。Is the unique name by which the certificate is known in the database.

REMOVE PRIVATE KEYREMOVE PRIVATE KEY
秘密キーをデータベース内で保持しないよう指定します。Specifies that the private key should no longer be maintained inside the database.

WITH PRIVATE KEY は、証明書の秘密キーを SQL Server に読み込むように指定します。WITH PRIVATE KEY Specifies that the private key of the certificate is loaded into SQL Server.

FILE ='path_to_private_key'FILE ='path_to_private_key'
秘密キーへの完全なパスを、ファイル名を含めて指定します。Specifies the complete path, including file name, to the private key. このパラメーターには、ローカル パスまたはネットワーク上の場所を示す UNC パスを指定できます。This parameter can be a local path or a UNC path to a network location. このファイルには、SQL ServerSQL Server サービス アカウントのセキュリティ コンテキストでアクセスします。This file will be accessed within the security context of the SQL ServerSQL Server service account. このオプションを使用する場合は、サービス アカウントに指定したファイルへのアクセス権があることを確認します。When you use this option, make sure the service account has access to the specified file.

ファイル名だけを指定した場合、そのファイルがインスタンスの既定のユーザー データ フォルダーに保存されます。If only a file name is specified, the file is saved in the default user data folder for the instance. このフォルダーは、SQL ServerSQL Server DATA フォルダーであってもなくても構いません。This folder might (or might not) be the SQL ServerSQL Server DATA folder. SQL Server Express LocalDB の場合、インスタンスの既定のユーザー データ フォルダーは、インスタンスを作成したアカウントの %USERPROFILE% 環境変数で指定されたパスです。For SQL Server Express LocalDB, the default user data folder for the instance is the path specified by the %USERPROFILE% environment variable for the account that created the instance.

BINARY ='private_key_bits'BINARY ='private_key_bits'
適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降。Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

バイナリ定数として指定された秘密キーのビット。Private key bits specified as binary constant. これらのビットは暗号化された形式でもかまいません。These bits can be in encrypted form. 暗号化されている場合は、ユーザーは暗号化解除パスワードを指定する必要があります。If encrypted, the user must provide a decryption password. パスワード ポリシーのチェックは、このパスワードに対しては実行されません。Password policy checks are not performed on this password. 秘密キーのビットは PVK ファイル形式にする必要があります。The private key bits should be in a PVK file format.

DECRYPTION BY PASSWORD ='current_password'DECRYPTION BY PASSWORD ='current_password'
秘密キーの暗号化解除に必要なパスワードを指定します。Specifies the password that is required to decrypt the private key.

ENCRYPTION BY PASSWORD ='new_password'ENCRYPTION BY PASSWORD ='new_password'
データベース内の証明書の秘密キーを暗号化するために使用されるパスワードを指定します。Specifies the password used to encrypt the private key of the certificate in the database. new_password は、SQL ServerSQL Server のインスタンスを実行するコンピューターの Windows のパスワード ポリシー要件を満たす必要があります。new_password must meet the Windows password policy requirements of the computer that is running the instance of SQL ServerSQL Server. 詳細については、「 Password Policy」をご参照ください。For more information, see Password Policy.

ACTIVE FOR BEGIN_DIALOG = { ON | OFF }ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
Service BrokerService Broker メッセージ交換の発信側で証明書を使用できるようにします。Makes the certificate available to the initiator of a Service BrokerService Broker dialog conversation.

解説Remarks

秘密キーは、certificate_name で指定する公開キーに対応している必要があります。The private key must correspond to the public key specified by certificate_name.

DECRYPTION BY PASSWORD 句は、ファイル内のパスワードが NULL パスワードで保護されている場合は省略できます。The DECRYPTION BY PASSWORD clause can be omitted if the password in the file is protected with a null password.

データベースに既に存在する証明書の秘密キーをインポートするとき、その秘密キーはデータベース マスター キーにより自動的に保護されます。When the private key of a certificate that already exists in the database is imported, the private key will be automatically protected by the database master key. 秘密キーをパスワードで保護するには、ENCRYPTION BY PASSWORD 句を使用します。To protect the private key with a password, use the ENCRYPTION BY PASSWORD clause.

REMOVE PRIVATE KEY オプションを指定すると、データベースから証明書の秘密キーが削除されます。The REMOVE PRIVATE KEY option will delete the private key of the certificate from the database. 署名の確認に証明書が使用される場合、または秘密キーを必要としない Service BrokerService Broker シナリオの場合は、秘密キーを削除できます。You can remove the private key when the certificate will be used to verify signatures or in Service BrokerService Broker scenarios that do not require a private key. 対称キーを保護する証明書の秘密キーを削除しないでください。Do not remove the private key of a certificate that protects a symmetric key. 秘密キーは、証明書を使用して検証する必要がある追加のモジュールまたは文字列に署名するため、または証明書を使用して暗号化されている値を暗号化解除するため、復元される必要があります。The private key will need to be restored in order to sign any additional modules or strings that should be verified with the certificate, or to decrypt a value that has been encrypted with the certificate.

秘密キーがデータベース マスター キーを使って暗号化される場合は、暗号化解除のパスワードを指定する必要はありません。You do not have to specify a decryption password when the private key is encrypted by using the database master key.

秘密キーの暗号化に使用するパスワードを変更するには、FILE 句と BINARY 句のいずれも指定しないでください。To change the password used for encrypting the private key, do not specify either the FILE or BINARY clauses.

重要

データベースから秘密キーを削除する前には、必ず秘密キーの保存用コピーを作成してください。Always make an archival copy of a private key before removing it from a database. 詳細については、「BACKUP CERTIFICATE (Transact-SQL)」と「CERTPRIVATEKEY (Transact-SQL)」を参照してください。For more information, see BACKUP CERTIFICATE (Transact-SQL) and CERTPRIVATEKEY (Transact-SQL).

WITH PRIVATE KEY オプションは、包含データベースでは使用できません。The WITH PRIVATE KEY option is not available in a contained database.

アクセス許可Permissions

証明書に対する ALTER 権限が必要です。Requires ALTER permission on the certificate.

Examples

A.A. 証明書の秘密キーを削除するRemoving the private key of a certificate

ALTER CERTIFICATE Shipping04   
    REMOVE PRIVATE KEY;  
GO  

B.B. 秘密キーの暗号化に使用するパスワードを変更するChanging the password that is used to encrypt the private key

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

C.C. データベースに存在する証明書の秘密キーをインポートするImporting a private key for a certificate that is already present in the database

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

D.D. 秘密キーの保護をパスワードからデータベース マスター キーに変更するChanging the protection of the private key from a password to the database master key

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

参照See Also

CREATE CERTIFICATE (Transact-SQL)CREATE CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)BACKUP CERTIFICATE (Transact-SQL)
暗号化階層Encryption Hierarchy
EVENTDATA (Transact-SQL)EVENTDATA (Transact-SQL)
CERTENCODED (Transact-SQL)CERTENCODED (Transact-SQL)
CERTPRIVATEKEY (Transact-SQL)CERTPRIVATEKEY (Transact-SQL)
CERT_ID (Transact-SQL)CERT_ID (Transact-SQL)
CERTPROPERTY (Transact-SQL)CERTPROPERTY (Transact-SQL)