CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
Создает поставщик служб шифрования в SQL Server на основе поставщика расширенного управления ключами.
Синтаксис
CREATE CRYPTOGRAPHIC PROVIDER provider_name
FROM FILE = path_of_DLL
Аргументы
provider_name
Имя поставщика расширенного управления ключами.path_of_DLL
Путь к DLL-библиотеке, реализующей интерфейс расширенного управления ключами SQL Server.
Замечания
Все ключи, созданные поставщиком, ссылаются на поставщик по его идентификатору GUID. Идентификатор GUID сохраняются во всех версиях DLL-библиотеки.
Библиотека, реализующая интерфейс SQLEKM, должна быть подписана цифровой подписью с использованием любого сертификата. SQL Server выполнит проверку подписи. При этом проверяется цепочка сертификатов, корень которой должен быть установлен в расположение Trusted Root Cert Authorities системной папки Windows. Если проверка подписи не выполнена должным образом, выполнение инструкции CREATE CRYPTOGRAPHIC PROVIDER оканчивается неудачей. Дополнительные сведения о сертификатах и цепочках сертификатов см. в разделе Сертификаты SQL Server и асимметричные ключи.
Когда поставщик EKM DLL-библиотек реализует не все необходимые методы, то инструкция CREATE CRYPTOGRAPHIC PROVIDER может вернуть ошибку 33085:
Один или несколько методов не удается найти в библиотеке «%.*ls» поставщика служб шифрования.
Если файл заголовка, используемый для создания поставщика EKM DLL-библиотек, устарел, то инструкция CREATE CRYPTOGRAPHIC PROVIDER может вернуть ошибку 33032:
API-интерфейс шифрования SQL версии "%02d.%02d" реализован поставщиком, который не поддерживается. Поддерживаемая версия "%02d.%02d".
Разрешения
Требует разрешение CONTROL в симметричном ключе.
Примеры
В следующем примере из DLL-файла в SQL Server создается поставщик служб шифрования с именем SecurityProvider. Этот DLL-файл имеет имя c:\SecurityProvider\SecurityProvider_v1.dll и установлен на сервере. Сначала необходимо установить на сервере сертификат поставщика.
-- Install the provider
CREATE CRYPTOGRAPHIC PROVIDER SecurityProvider
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v1.dll'