ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

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

Аргументы

  • 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 для поставщика служб шифрования.

Примеры

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

/* First, disable the provider to perform the upgrade.
This will terminate all open cryptographic sessions */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider 
DISABLE;
GO

/* Upgrade the provider .dll file. The GUID must the same
as the previous version, but the version can be different. */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';
GO

/* Enable the upgraded provider. */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider 
ENABLE;
GO

См. также

Справочник

CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)

DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)

CREATE SYMMETRIC KEY (Transact-SQL)

Основные понятия

Расширенное управление ключами (Extensible Key Management)