次の方法で共有


ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

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 が返されることがあります。

1 つ以上のメソッドが暗号化サービス プロバイダー ライブラリ '%.*ls' で見つかりませんでした。

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

プロバイダーによって実装された SQL Crypto API バージョン '%02d.%02d' はサポートされていません。サポートされているバージョンは '%02d.%02d' です。

権限

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

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

/* First, disable the provider to perform the upgrade.
This will terminate all open cryptographic sessions */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider 
DISABLE;
GO

/* Upgrade the provider .dll file. The GUID must the same
as the previous version, but the version can be different. */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';
GO

/* Enable the upgraded provider. */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider 
ENABLE;
GO