다음을 통해 공유


OPEN SYMMETRIC KEY(Transact-SQL)

대칭 키를 해독하여 사용할 수 있게 만듭니다.

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

구문

OPEN SYMMETRIC KEY Key_name DECRYPTION BY <decryption_mechanism>

<decryption_mechanism> ::=
    CERTIFICATE certificate_name [ WITH PASSWORD = 'password' ]
    |
    ASYMMETRIC KEY asym_key_name [ WITH PASSWORD = 'password' ]
    |
    SYMMETRIC KEY decrypting_Key_name
    |
    PASSWORD = 'decryption_password'

인수

  • Key_name
    열려는 대칭 키의 이름입니다.

  • CERTIFICATE certificate_name
    대칭 키 해독에 사용할 개인 키를 가지고 있는 인증서의 이름입니다.

  • ASYMMETRIC KEY asym_key_name
    대칭 키 해독에 사용할 개인 키를 가지고 있는 비대칭 키의 이름입니다.

  • WITH PASSWORD = 'password'
    인증서나 비대칭 키의 개인 키를 암호화하는 데 사용된 암호입니다.

  • SYMMETRIC KEY decrypting_key_name
    열려는 대칭 키를 해독하는 데 사용할 대칭 키의 이름입니다.

  • PASSWORD = 'password'
    대칭 키를 보호하는 데 사용된 암호입니다.

주의

열린 대칭 키는 보안 컨텍스트가 아니라 세션에 바인딩됩니다. 열린 키는 명시적으로 닫히거나 세션이 종료될 때까지 계속 사용할 수 있습니다. 대칭 키를 연 후 컨텍스트를 전환하면 키가 계속 열려 있으며 가장된 컨텍스트에서 사용할 수 있습니다. 열린 대칭 키에 대한 정보는 sys.openkeys(Transact-SQL) 카탈로그 뷰에 있습니다.

대칭 키가 다른 키로 암호화되어 있으면 먼저 해당 키를 열어야 합니다.

대칭 키가 이미 열려 있으면 쿼리가 NO_OP입니다.

대칭 키를 해독하기 위해 제공한 암호, 인증서 또는 키가 올바르지 않으면 쿼리가 실패합니다.

암호화 공급자에서 만든 대칭 키는 열 수 없습니다. 암호화 공급자가 이런 종류의 대칭 키를 열고 닫으므로 이 키를 사용한 암호화 및 해독 작업은 OPEN 문이 없어도 성공적으로 수행됩니다.

사용 권한

호출자는 키에 대한 일부 사용 권한을 가지고 있어야 하며 키에 대한 VIEW DEFINITION 권한이 거부되지 않은 상태여야 합니다. 해독 메커니즘에 따라 추가 요구 사항이 따를 수도 있습니다.

  • 인증서로 해독: 인증서에 대한 CONTROL 권한이 있어야 하고 인증서의 개인 키를 암호화하는 데 사용된 암호를 알고 있어야 합니다.

  • 비대칭 키로 해독: 비대칭 키에 대한 CONTROL 권한이 있어야 하고 비대칭 키의 개인 키를 암호화하는 데 사용된 암호를 알고 있어야 합니다.

  • 암호로 해독: 대칭 키를 암호화하는 데 사용된 암호 중 하나를 알고 있어야 합니다.

1. 인증서를 사용하여 대칭 키 열기

다음 예에서는 SymKeyMarketing3 대칭 키를 열고 MarketingCert9 인증서의 개인 키를 사용하여 해독합니다.

USE AdventureWorks2008R2;
OPEN SYMMETRIC KEY SymKeyMarketing3 
    DECRYPTION BY CERTIFICATE MarketingCert9;
GO

2. 다른 대칭 키를 사용하여 대칭 키 열기

다음 예에서는 MarketingKey11 대칭 키를 열고 HarnpadoungsatayaSE3 대칭 키를 사용하여 해독합니다.

USE AdventureWorks2008R2;
-- First open the symmetric key that you want for decryption.
OPEN SYMMETRIC KEY HarnpadoungsatayaSE3 
    DECRYPTION BY CERTIFICATE sariyaCert01;
-- Use the key that is already open to decrypt MarketingKey11.
OPEN SYMMETRIC KEY MarketingKey11 
    DECRYPTION BY SYMMETRIC KEY HarnpadoungsatayaSE3;
GO