CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
SQL Server 内で、拡張キー管理 (EKM: Extensible Key Management) プロバイダーから暗号化サービス プロバイダーを作成します。
構文
CREATE CRYPTOGRAPHIC PROVIDER provider_name
FROM FILE = path_of_DLL
引数
provider_name
拡張キー管理プロバイダーの名前を指定します。path_of_DLL
SQL Server 拡張キー管理インターフェイスを実装する .dll ファイルのパスを指定します。
説明
プロバイダーによって作成されるキーはいずれも、プロバイダーをその GUID で参照します。GUID は、DLL のすべてのバージョン間で保持されます。
SQLEKM インターフェイスを実装する DLL は、任意の証明書を使用してデジタル署名する必要があります。この署名は、SQL Server によって検証されます。これにはその証明書チェーンも含まれます。証明書チェーンのルートは、Windows システムの Trusted Root Cert Authorities がある場所にインストールされている必要があります。署名が正しく検証されなかった場合は、CREATE CRYPTOGRAPHIC PROVIDER ステートメントが失敗します。証明書および証明書チェーンの詳細については、「SQL Server の証明書と非対称キー」を参照してください。
EKM プロバイダーの dll で必要なメソッドの一部が実装されなかった場合は、CREATE CRYPTOGRAPHIC PROVIDER から次のエラー 33085 が返されることがあります。
1 つ以上のメソッドが暗号化サービス プロバイダー ライブラリ '%.*ls' で見つかりませんでした。
EKM プロバイダーの dll の作成に使用されたヘッダー ファイルが古い場合は、CREATE CRYPTOGRAPHIC PROVIDER から次のエラー 33032 が返されることがあります。
プロバイダーによって実装された SQL Crypto API バージョン '%02d.%02d' はサポートされていません。サポートされているバージョンは '%02d.%02d' です。
権限
対称キーに対する CONTROL 権限が必要です。
例
次の例では、SQL Server で .dll ファイルから SecurityProvider という暗号化サービス プロバイダーを作成します。この .dll ファイルは c:\SecurityProvider\SecurityProvider_v1.dll という名前でサーバーにインストールされています。最初にプロバイダーの証明書をサーバーにインストールする必要があります。
-- Install the provider
CREATE CRYPTOGRAPHIC PROVIDER SecurityProvider
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v1.dll'