CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)

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

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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'