ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
適用対象: SQL Server
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 が返されることがあります。
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
という名前でサーバーにインストールされています。 プロバイダーの証明書をサーバーにインストールする必要があります。
- アップグレードを実行するプロバイダーを無効にします。 これにより、開いているすべての暗号化セッションが終了します。
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider
DISABLE;
GO
- プロバイダーの .dll ファイルをアップグレードします。 GUID では必ず以前のバージョンと同じになりますが、バージョンは異なってもかまいません。
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';
GO
- アップグレード済みのプロバイダーを有効にします。
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)