ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

Область применения:SQL Server

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

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

Синтаксис

ALTER CRYPTOGRAPHIC PROVIDER provider_name   
    [ FROM FILE = path_of_DLL ]  
    ENABLE | DISABLE  

Аргументы

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

Path_of_DLL
Путь к файлу .dll, реализующего интерфейс управления расширяемыми ключами SQL Server.

ENABLE | ОТКЛЮЧИТЬ
Включает или отключает поставщик.

Замечания

Если провайдер меняет .dll-файл, используемый для реализации Extensible Key Management в SQL Server, вы должны использовать этот ALTER CRYPTOGRAPHIC PROVIDER оператор.

Когда путь .dll файла обновляется с помощью оператораALTER CRYPTOGRAPHIC PROVIDER, SQL Server выполняет следующие действия:

  • Отключает поставщик.
  • Проверяет подлинность подписи DLL-библиотеки, а также то, что ее идентификатор GUID совпадает с тем, который записан в каталоге.
  • Обновляет версию DLL-библиотеки в каталоге.

Если для поставщика расширенного управления ключами установлено значение DISABLE, то любые попытки использовать этот поставщик с инструкциями шифрования для новых соединений завершается ошибкой.

Перед отключением поставщика необходимо закрыть все сеансы, использующие его.

Если DLL провайдера EKM не реализует все необходимые методы, ALTER CRYPTOGRAPHIC PROVIDER может вернуть ошибку 33085:

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

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

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

Разрешения

Требуется разрешение CONTROL для поставщика служб шифрования.

Примеры

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

  1. Отключите поставщик для выполнения обновления. Будут завершены все открытые сеансы шифрования.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
DISABLE;  
GO  
  1. Обновите DLL-файл поставщика. Идентификатор GUID должен быть тем же, что и в предыдущей версии, но версия может отличаться.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider  
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';  
GO  
  1. Включите обновленный поставщик.
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)