ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
Изменяет поставщик служб шифрования в SQL Server на основе поставщика расширенного управления ключами.
Синтаксические обозначения в 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)