다음을 통해 공유


CREATE CRYPTOGRAPHIC PROVIDER(Transact-SQL)

적용 대상: SQL Server Azure SQL Managed Instance

EKM(확장 가능 키 관리) 공급자에서 SQL Server 내에 암호화 공급자를 만듭니다.

Transact-SQL 구문 표기 규칙

구문

CREATE CRYPTOGRAPHIC PROVIDER provider_name   
    FROM FILE = path_of_DLL  

인수

provider_name
EKM(확장 가능 키 관리) 공급자의 이름입니다.

path_of_DLL
SQL Server EKM(확장 가능 키 관리) 인터페이스를 구현하는 .dll의 경로입니다. Microsoft Azure 주요 자격 증명 모음용 SQL Server 커넥터를 사용하는 경우 기본 위치는 ‘C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll’ 입니다.

설명

공급자에서 만든 모든 키는 해당 GUID로 공급자를 참조합니다. GUID는 모든 버전의 DLL에 보존됩니다.

SQLEKM 인터페이스를 구현하는 DLL은 인증서를 사용하여 디지털로 서명해야 합니다. 그러면 SQL Server가 서명을 확인합니다. 여기에는 해당 루트가 Windows 시스템에서 Trusted Root Cert Authorities 위치에 설치해야 하는 해당 인증서 체인이 포함됩니다. 서명이 제대로 확인되지 않으면 CREATE CRYPTOGRAPHIC PROVIDER 문이 실패합니다. 인증서 및 인증서 체인에 대한 자세한 내용은 SQL Server Certificates and Asymmetric Keys를 참조하십시오.

EKM 공급자 dll이 필요한 메서드를 모두 구현하지 않으면 CREATE CRYPTOGRAPHIC PROVIDER가 다음과 같은 오류 33085를 반환할 수 있습니다.

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

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

SQL Crypto API version '%02d.%02d' implemented by provider is not supported. Supported version is '%02d.%02d'.

사용 권한

CONTROL SERVER 권한 또는 sysadmin 고정 서버 역할의 멤버 자격이 필요합니다.

예제

다음 예에서는 SQL Server에서 .dll 파일로부터 SecurityProvider라는 암호화 공급자를 만듭니다. .dll 파일의 이름은 c:\SecurityProvider\SecurityProvider_v1.dll이고 이 파일은 서버에 설치됩니다. 먼저 공급자의 인증서가 서버에 설치되어 있어야 합니다.

-- Install the provider  
CREATE CRYPTOGRAPHIC PROVIDER SecurityProvider  
    FROM FILE = 'C:\SecurityProvider\SecurityProvider_v1.dll';  

참고 항목

EKM(확장 가능 키 관리)
ALTER CRYPTOGRAPHIC PROVIDER(Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER(Transact-SQL)
CREATE SYMMETRIC KEY(Transact-SQL)
Azure Key Vault(SQL Server)를 사용한 확장 가능 키 관리
Azure Key Vault를 사용하여 SQL Server TDE 확장 가능 키 관리 설정
sys.cryptographic_providers
sys.dm_cryptographic_provider_properties