CREATE ASYMMETRIC KEY(Transact-SQL)

 

이 항목은 다음에 적용됩니다.예SQL Server(2008부터 시작)예Azure SQL 데이터베이스아니요Azure SQL 데이터 웨어하우스아니요병렬 데이터 웨어하우스

데이터베이스에서 비대칭 키를 만듭니다.

이 기능은 Data Tier Application Framework(DACFx)를 사용하는 데이터베이스 내보내기와 호환되지 않습니다. 내보내기 전에 모든 비대칭 키를 삭제해야 합니다.

Topic link icon Transact-SQL 구문 표기 규칙

  
CREATE ASYMMETRIC KEY Asym_Key_Name   
   [ AUTHORIZATION database_principal_name ]  
   {  
      [ FROM <Asym_Key_Source> ]  
      |  
      WITH <key_option>  
   [ ENCRYPTION BY <encrypting_mechanism> ]  
  
<Asym_Key_Source>::=  
   FILE = 'path_to_strong-name_file'  
   |  
   EXECUTABLE FILE = 'path_to_executable_file'  
   |  
   ASSEMBLY Assembly_Name  
   |  
   PROVIDER Provider_Name  
  
<key_option> ::=  
   ALGORITHM = <algorithm>  
      |  
   PROVIDER_KEY_NAME = 'key_name_in_provider'  
      |  
      CREATION_DISPOSITION = { CREATE_NEW | OPEN_EXISTING }  
  
<algorithm> ::=  
      { RSA_4096 | RSA_3072 | RSA_2048 | RSA_1024 | RSA_512 }   
  
<encrypting_mechanism> ::=  
    PASSWORD = 'password'   

Asym_Key_Source
비대칭 키 쌍을 로드할 원본을 지정합니다.

권한 부여 database_principal_name
비대칭 키의 소유자를 지정합니다. 소유자는 역할 또는 그룹일 수 없습니다. 이 옵션을 생략하면 소유자가 현재 사용자가 됩니다.

파일 ='path_to_strong name_file'
키 쌍을 로드할 강력한 이름 파일의 경로를 지정합니다.

System_CAPS_ICON_note.jpg 참고


포함된 데이터베이스에서는 이 옵션을 사용할 수 없습니다.

실행 파일 ='path_to_executable_file'
공개 키를 로드할 어셈블리 파일을 지정합니다. Windows API에서 MAX_PATH를 통해 260자로 제한됩니다.

System_CAPS_ICON_note.jpg 참고


포함된 데이터베이스에서는 이 옵션을 사용할 수 없습니다.

어셈블리 Assembly_Name
공개 키를 로드할 어셈블리 이름을 지정합니다.

암호화가<key_name_in_provider></key_name_in_provider>
키를 암호화할 방법을 지정합니다. 인증서, 암호 또는 비대칭 키일 수 있습니다.

KEY_NAME ='key_name_in_provider'
외부 공급자의 키 이름을 지정합니다. 외부 키 관리에 대 한 자세한 내용은 참조 관리 EKM (Extensible Key)합니다.

CREATION_DISPOSITION = CREATE_NEW
확장 가능 키 관리 장치에 새 키를 만듭니다. PROV_KEY_NAME을 사용하여 장치에 키 이름을 지정해야 합니다. 키가 이미 장치에 있는 경우 문이 오류와 함께 실패합니다.

CREATION_DISPOSITION = OPEN_EXISTING
지도 SQL Server 기존 확장 가능 키 관리 키에 비대칭 키입니다. PROV_KEY_NAME을 사용하여 장치에 키 이름을 지정해야 합니다. CREATION_DISPOSITION = OPEN_EXISTING을 지정하지 않은 경우 기본값은 CREATE_NEW입니다.

알고리즘 =<>>
5 개의 알고리즘을 제공할 수 있습니다. RSA_4096, RSA_3072, RSA_2048, RSA_1024, 및 RSA_512 합니다.

RSA_1024 및 RSA_512 사용 되지 않습니다. RSA_1024 또는 RSA_512 (권장 하지 않음)를 사용 하 여 120 개 이하의 데이터베이스 호환성 수준을 설정 해야 합니다.

암호 = '암호'
개인 키를 암호화하는 데 사용할 암호를 지정합니다. 이 절이 없는 경우 개인 키는 데이터베이스 마스터 키로 암호화됩니다. 암호 최대 128 자입니다. 암호 의 인스턴스를 실행 하는 컴퓨터의 Windows 암호 정책 요구 사항을 충족 해야 SQL Server합니다.

비대칭 키 는 데이터베이스 수준에서 보안 가능한 엔터티입니다. 기본 형태의 이 엔터티에는 공개 키와 개인 키가 모두 포함됩니다. FROM 절 없이 실행될 경우 CREATE ASYMMETRIC KEY는 새로운 키 쌍을 생성합니다. FROM 절로 실행될 경우 CREATE ASYMMETRIC KEY는 파일에서 키 쌍을 가져오거나 어셈블리에서 공개 키를 가져옵니다.

기본적으로 개인 키는 데이터베이스 마스터 키로 보호됩니다. 데이터베이스 마스터 키를 만든 경우 개인 키를 보호하기 위해 암호가 필요합니다. 데이터베이스 마스터 키가 있으면 암호는 선택 사항입니다.

개인 키의 길이는 512, 1024 또는 2048비트일 수 있습니다.

데이터베이스에 대한 CREATE ASYMMETRIC KEY 권한이 필요합니다. AUTHORIZATION 절이 지정된 경우 데이터베이스 보안 주체에 대한 IMPERSONATE 권한 또는 응용 프로그램 역할에 대한 ALTER 권한이 필요합니다. Windows 로그인, SQL Server 로그인 및 응용 프로그램 역할만 비대칭 키를 소유할 수 있습니다. 그룹 및 역할은 비대칭 키를 소유할 수 없습니다.

1. 비대칭 키 만들기

다음 예에서는 PacificSales09 알고리즘을 사용하여 RSA_2048라는 비대칭 키를 만들고 암호로 개인 키를 보호합니다.

CREATE ASYMMETRIC KEY PacificSales09   
    WITH ALGORITHM = RSA_2048   
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';   
GO  

2. 파일로부터 비대칭 키를 만들어서 사용자에게 권한 부여

다음 예에서는 파일에 저장된 키 쌍으로부터 비대칭 키 PacificSales19를 만든 다음 사용자 Christina에게 비대칭 키를 사용할 수 있는 권한을 부여합니다.

CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION Christina   
    FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp'    
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';  
GO  

3. EKM 공급자에서 비대칭 키 만들기

다음 예에서는 파일에 저장된 키 쌍에서 비대칭 키 EKM_askey1을 만듭니다. 그런 다음 EKMProvider1이라는 확장 가능 키 관리 공급자와 이 공급자의 key10_user1이라는 키를 사용하여 해당 키를 암호화합니다.

CREATE ASYMMETRIC KEY EKM_askey1   
    FROM PROVIDER EKM_Provider1  
    WITH   
        ALGORITHM = RSA_2048,   
        CREATION_DISPOSITION = CREATE_NEW  
        , PROVIDER_KEY_NAME  = 'key10_user1' ;  
GO  

암호화 알고리즘 선택
ALTER ASYMMETRIC KEY (TRANSACT-SQL)
DROP ASYMMETRIC KEY (TRANSACT-SQL)
암호화 계층
Azure Key Vault를 사용한 확장 가능 키 관리(SQL Server)

커뮤니티 추가 항목

추가
표시: