ALTER CRYPTOGRAPHIC PROVIDER(Transact-SQL)

SQL Server 내 암호화 공급자인 EKM(확장 가능 키 관리) 공급자를 변경합니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

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를 반환할 수 있습니다.

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

EKM 공급자 dll을 만드는 데 사용한 헤더 파일이 오래된 경우에는 ALTER CRYPTOGRAPHIC PROVIDER가 다음과 같은 오류 33032를 반환할 수 있습니다.

SQL Crypto API version '%02d. %02d' implemented by provider is not supported. Supported version is '%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

참고 항목

참조

CREATE CRYPTOGRAPHIC PROVIDER(Transact-SQL)

DROP CRYPTOGRAPHIC PROVIDER(Transact-SQL)

CREATE SYMMETRIC KEY(Transact-SQL)

개념

EKM(확장 가능 키 관리)