CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)

Применимо к:SQL Server Управляемый экземпляр SQL Azure

Создает поставщик шифрования в SQL Server из поставщика расширенного управления ключами (EKM).

Соглашения о синтаксисе Transact-SQL

Синтаксис

CREATE CRYPTOGRAPHIC PROVIDER provider_name   
    FROM FILE = path_of_DLL  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

provider_name
Имя поставщика расширенного управления ключами.

path_of_DLL
Путь к DLL-файлу, реализующего интерфейс управления расширяемыми ключами SQL Server. При использовании Соединителя SQL Server для Microsoft Azure Key Vault расположением по умолчанию является C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll.

Замечания

Все ключи, созданные поставщиком, ссылаются на поставщик по его идентификатору GUID. Идентификатор GUID сохраняются во всех версиях DLL-библиотеки.

Библиотека, реализующая интерфейс SQLEKM, должна быть подписана цифровой подписью с использованием любого сертификата. SQL Server проверяет подпись. При этом проверяется цепочка сертификатов, корень которой должен быть установлен в расположение Trusted Root Cert Authorities системной папки Windows. Если проверка подписи не выполнена должным образом, выполнение инструкции CREATE CRYPTOGRAPHIC PROVIDER оканчивается неудачей. Дополнительные сведения о сертификатах и цепочках сертификатов см. в разделе Сертификаты SQL Server и асимметричные ключи.

Когда поставщик EKM DLL-библиотек реализует не все необходимые методы, то инструкция CREATE CRYPTOGRAPHIC PROVIDER может вернуть ошибку 33085:

One or more methods cannot be found in cryptographic provider library '%.*ls'.

Если файл заголовка, используемый для создания поставщика EKM DLL-библиотек, устарел, то инструкция CREATE CRYPTOGRAPHIC PROVIDER может вернуть ошибку 33032:

SQL Crypto API version '%02d.%02d' implemented by provider is not supported. Supported version is '%02d.%02d'.

Разрешения

Требует разрешения CONTROL SERVER или членства в предопределенной роли сервера sysadmin.

Примеры

В следующем примере создается криптографический поставщик, вызываемый SecurityProvider в SQL Server из DLL-файла. Этот DLL-файл имеет имя c:\SecurityProvider\SecurityProvider_v1.dll и установлен на сервере. Сначала необходимо установить на сервере сертификат поставщика.

-- Install the provider  
CREATE CRYPTOGRAPHIC PROVIDER SecurityProvider  
    FROM FILE = 'C:\SecurityProvider\SecurityProvider_v1.dll';  

См. также

Расширенное управление ключами (EKM)
ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
Расширенное управление ключами с помощью Azure Key Vault (SQL Server)
Настройка расширенного управления ключами SQL Server TDE с помощью Azure Key Vault
sys.cryptographic_providers
sys.dm_cryptographic_provider_properties