ALTER CRYPTOGRAPHIC PROVIDER(Transact-SQL)
SQL Server 내 암호화 공급자인 EKM(확장 가능 키 관리) 공급자를 변경합니다.
구문
ALTER CRYPTOGRAPHIC PROVIDER provider_name
[ FROM FILE = path_of_DLL ]
ENABLE | DISABLE
인수
provider_name
EKM(확장 가능 키 관리) 공급자의 이름입니다.Path_of_DLL
SQL Server EKM(확장 가능 키 관리) 인터페이스를 구현하는 .dll 파일의 경로입니다.ENABLE | DISABLE
공급자를 설정하거나 해제합니다.
주의
공급자 변경 시 SQL Server에서 EKM(확장 가능 키 관리)을 구현하는 데 사용되는 .dll 파일도 변경하려면 ALTER CRYPTOGRAPHIC PROVIDER 문을 사용해야 합니다.
ALTER CRYPTOGRAPHIC PROVIDER 문을 통해 .dll 파일 경로가 업데이트되면 SQL Server에서 다음 동작을 수행합니다.
공급자를 해제합니다.
DLL 서명을 확인하고 .dll 파일의 GUID가 카탈로그에 기록된 것과 같은지 확인합니다.
카탈로그의 DLL 버전을 업데이트합니다.
EKM 공급자가 DISABLE로 설정된 경우 새 연결에서 암호화 문으로 공급자를 사용하려는 모든 시도는 실패하게 됩니다.
공급자를 해제하려면 공급자를 사용하는 모든 세션을 종료해야 합니다.
EKM 공급자 dll이 필요한 메서드를 모두 구현하지 않으면 ALTER CRYPTOGRAPHIC PROVIDER가 다음과 같은 오류 33085를 반환할 수 있습니다.
암호화 공급자 라이브러리 '%.*ls'에서 하나 이상의 메서드를 찾을 수 없습니다.
EKM 공급자 dll을 만드는 데 사용한 헤더 파일이 오래된 경우에는 ALTER CRYPTOGRAPHIC PROVIDER가 다음과 같은 오류 33032를 반환할 수 있습니다.
공급자가 구현한 SQL Crypto API 버전 '%02d.%02d'이(가) 지원되지 않습니다. 지원되는 버전은 '%02d.%02d'입니다.
사용 권한
암호화 공급자에 대한 CONTROL 권한이 필요합니다.
예
다음 예에서는 SQL Server의 SecurityProvider라는 암호화 공급자를 새 버전의 .dll 파일로 변경합니다. 새 버전의 이름은 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