ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

Применимо к:SQL Server

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

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

Синтаксис

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

Примечание.

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

Аргументы

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

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

ENABLE | DISABLE
Включает или отключает поставщик.

Замечания

Если поставщик изменяет DLL-файл, используемый для реализации управления расширяемыми ключами в SQL Server, необходимо использовать инструкцию ALTER CRYPTOGRAPHIC PROVIDER.

При обновлении пути к DLL-файлу с помощью инструкции ALTER CRYPTOGRAPHIC PROVIDER SQL Server выполняет следующие действия:

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

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

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

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

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

Если файл заголовка, используемый для создания поставщика расширенного управления ключами DLL-библиотек, устарел, то инструкция 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)