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