ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

適用対象: SQL Server

SQL Server 内の暗号化サービス プロバイダーを拡張キー管理 (EKM: Extensible Key Management) プロバイダーから変更します。

Transact-SQL 構文表記規則

構文

ALTER CRYPTOGRAPHIC PROVIDER provider_name   
    [ FROM FILE = path_of_DLL ]  
    ENABLE | DISABLE  

引数

provider_name
拡張キー管理プロバイダーの名前です。

Path_of_DLL
SQL Server 拡張キー管理インターフェイスを実装する .dll ファイルのパスを指定します。

ENABLE | DISABLE
プロバイダーを有効または無効にします。

解説

SQL Server で拡張キー管理を実装するために使用する .dll ファイルをプロバイダーから変更する場合、ALTER CRYPTOGRAPHIC PROVIDER ステートメントを使用する必要があります。

ALTER CRYPTOGRAPHIC PROVIDER ステートメントを使用して .dll ファイルのパスを更新すると、SQL Server では次の操作が実行されます。

  • プロバイダーを無効にします。
  • DLL の署名を確認し、.dll ファイルの GUID が、カタログに記録されているものと確実に同じになるようにします。
  • カタログの DLL バージョンを更新します。

EKM プロバイダーを DISABLE に設定した場合、新しい接続において、そのプロバイダーを暗号化ステートメントで使用する試みはいずれも失敗します。

プロバイダーを無効にするには、プロバイダーを使用するすべてのセッションを終了する必要があります。

EKM プロバイダーの dll で必要なメソッドの一部が実装されなかった場合は、ALTER CRYPTOGRAPHIC PROVIDER から次のエラー 33085 が返されることがあります。

One or more methods cannot be found in cryptographic provider library '%.*ls'.

EKM プロバイダーの dll の作成に使用されたヘッダー ファイルが古い場合は、ALTER CRYPTOGRAPHIC PROVIDER から次のエラー 33032 が返されることがあります。

SQL Crypto API version '%02d.%02d' implemented by provider is not supported. Supported version is '%02d.%02d'.

アクセス許可

暗号化サービス プロバイダーに対する CONTROL 権限が必要です。

次の例では、SQL Server 内の SecurityProvider という暗号化サービス プロバイダーを新しいバージョンの .dll ファイルに変更します。 この新しいバージョンの .dll ファイルは、c:\SecurityProvider\SecurityProvider_v2.dll という名前でサーバーにインストールされています。 プロバイダーの証明書をサーバーにインストールする必要があります。

  1. アップグレードを実行するプロバイダーを無効にします。 これにより、開いているすべての暗号化セッションが終了します。
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
DISABLE;  
GO  
  1. プロバイダーの .dll ファイルをアップグレードします。 GUID では必ず以前のバージョンと同じになりますが、バージョンは異なってもかまいません。
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider  
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';  
GO  
  1. アップグレード済みのプロバイダーを有効にします。
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
ENABLE;  
GO  

参照

拡張キー管理 (EKM)
CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
Azure Key Vault を使用する拡張キー管理 (SQL Server)