CREATE SYMMETRIC KEY(Transact-SQL)

업데이트: 2008년 11월 17일

대칭 키를 생성하고 해당 속성을 지정합니다.

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

구문

CREATE SYMMETRIC KEY key_name [ AUTHORIZATION owner_name ]
    WITH <key_options> [ , ... n ]
    ENCRYPTION BY <encrypting_mechanism> [ , ... n ] 

<encrypting_mechanism> ::=
    CERTIFICATE certificate_name 
    |
    PASSWORD = 'password' 
    |
    SYMMETRIC KEY symmetric_key_name 
    |
    ASYMMETRIC KEY asym_key_name    

<key_options> ::=
    KEY_SOURCE = 'pass_phrase'
    |
    ALGORITHM = <algorithm>
    |
    IDENTITY_VALUE = 'identity_phrase'

<algorithm> ::=
    DES | TRIPLE_DES | RC2 | RC4 | RC4_128
    | DESX | AES_128 | AES_192 | AES_256 

인수

  • key_name
    데이터베이스에서 대칭 키를 식별하는 고유한 이름입니다. 임시 키의 이름은 한 개의 번호(#) 기호로 시작해야 합니다. 예를 들면 #temporaryKey900007과 같습니다. 2개 이상의 #으로 시작하는 이름이 포함된 대칭 키는 만들 수 없습니다.
  • AUTHORIZATION owner_name
    이 키를 소유하는 데이터베이스 사용자 또는 응용 프로그램 역할의 이름을 지정합니다.
  • certificate_name
    대칭 키를 암호화하는 데 사용되는 인증서 이름을 지정합니다. 인증서는 데이터베이스에 이미 있어야 합니다.
  • 'password'
    대칭 키를 보호하는 데 사용할 TRIPLE_DES 키를 파생할 암호를 지정합니다. 암호 복잡성이 확인됩니다. 항상 강력한 암호를 사용해야 합니다.
  • symmetric_key_name
    만들려는 키를 암호화하는 데 사용할 대칭 키를 지정합니다. 지정된 키는 데이터베이스에 이미 있어야 하며 열려 있어야 합니다.
  • asym_key_name
    만들려는 키를 암호화하는 데 사용할 비대칭 키를 지정합니다. 이 비대칭 키는 데이터베이스에 이미 있어야 합니다.
  • KEY_SOURCE ='pass_phrase'
    키를 파생할 전달 구를 지정합니다.
  • IDENTITY_VALUE ='identity_phrase'
    임시 키로 암호화된 데이터 분류용 GUID를 생성할 ID 구를 지정합니다.

주의

대칭 키를 만들 때 대칭 키는 인증서, 암호, 대칭 키 또는 비대칭 키 중 하나 이상을 사용하여 암호화해야 합니다. 키에는 각 유형에 대해 두 개 이상의 암호화가 포함될 수 있습니다. 즉, 여러 인증서, 암호, 대칭 키 및 비대칭 키를 동시에 사용하여 단일 대칭 키를 암호화할 수 있습니다.

ms188357.Caution(ko-kr,SQL.90).gif주의:
데이터베이스 마스터 키의 공개 키 대신 암호를 사용하여 대칭 키를 암호화한 경우 TRIPLE_DES 암호화 알고리즘이 사용됩니다. 따라서 AES와 같은 강력한 암호화 알고리즘을 사용하여 만든 키는 더 약한 알고리즘으로 보호됩니다.

키를 여러 사용자에게 배포하기 전에 선택적인 암호를 사용하여 대칭 키를 암호화할 수 있습니다.

임시 키는 키를 만드는 사용자가 소유합니다. 임시 키는 현재 세션에 대해서만 유효합니다.

IDENTITY_VALUE는 새 대칭 키로 암호화된 데이터를 분류하는 GUID를 생성합니다. 이 분류는 암호화된 데이터와 키를 일치시키는 데 사용됩니다. 특정 구에서 생성된 GUID는 항상 동일합니다. GUID를 생성하는 데 사용한 구는 연결된 대칭 키를 삭제하지 않는 한 현재 세션에서 다시 사용할 수 없습니다. IDENTITY_VALUE는 선택적인 절이지만 임시 키로 암호화된 데이터를 저장할 때는 이 절을 사용하는 것이 좋습니다.

기본 암호화 알고리즘은 없습니다.

ms188357.note(ko-kr,SQL.90).gif중요:
중요한 데이터를 보호할 때는 RC4 및 RC4_128 스트림 암호를 사용하지 않는 것이 좋습니다. SQL Server 2005에서는 이러한 키로 수행된 암호화를 솔트하지 않습니다.

대칭 키에 대한 정보는 sys.symmetric_keys 카탈로그 뷰에 표시됩니다.

DES 알고리즘 관련 설명:

  • DESX 이름이 잘못 지정되었습니다. ALGORITHM = DESX로 만들어진 대칭 키는 실제로 192비트 키의 TRIPLE DES 암호화를 사용합니다. DESX 알고리즘은 제공되지 않습니다.
  • ALGORITHM = TRIPLE_DES로 만들어진 대칭 키는 128비트 키의 TRIPLE DES 암호화를 사용합니다.

사용 권한

데이터베이스에 대한 ALTER ANY SYMMETRIC KEY 권한이 필요합니다. AUTHORIZATION이 지정된 경우 데이터베이스 사용자에 대한 IMPERSONATE 권한 또는 응용 프로그램 역할에 대한 ALTER 권한이 필요합니다. 인증서 또는 비대칭 키를 통한 암호화의 경우에는 해당 인증서 또는 비대칭 키에 대한 VIEW DEFINITION 권한이 필요합니다.

1. 대칭 키 만들기

다음 예에서는 AES 256 알고리즘을 사용하여 JanainaKey09라는 대칭 키를 만든 다음 새 키를 Shipping04 인증서를 사용하여 암호화합니다.

CREATE SYMMETRIC KEY JanainaKey09 WITH ALGORITHM = AES_256
    ENCRYPTION BY CERTIFICATE Shipping04;
GO

2. 임시 대칭 키 만들기

다음 예에서는 #MarketingXXV라는 임시 대칭 키를 The square of the hypotenuse is equal to the sum of the squares of the sides라는 전달 구를 사용하여 만듭니다. 이 키는 Pythagoras 문자열에서 생성되고 Marketing25 인증서로 암호화된 GUID와 함께 제공됩니다.

CREATE SYMMETRIC KEY #MarketingXXV 
     WITH ALGORITHM = AES_128,
     KEY_SOURCE 
     = 'The square of the hypotenuse is equal to the sum of the squares of the sides',
     IDENTITY_VALUE = 'Pythagoras'
     ENCRYPTION BY CERTIFICATE Marketing25;
GO

참고 항목

참조

ALTER SYMMETRIC KEY(Transact-SQL)
DROP SYMMETRIC KEY(Transact-SQL)
sys.symmetric_keys(Transact-SQL)

관련 자료

암호화 알고리즘 선택
암호화 계층

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2005년 12월 5일

새로운 내용
  • RC4 및 RC4_128 스트림 암호 사용에 대한 중요 내용을 추가했습니다.

2008년 11월 17일

새로운 내용
  • DESX 알고리즘 관련 설명이 추가되었습니다.