ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
SQL Server 内の暗号化サービス プロバイダーを拡張キー管理 (EKM: Extensible Key Management) プロバイダーから変更します。
構文
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