다음을 통해 공유


OPEN SYMMETRIC KEY(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics

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

Transact-SQL 구문 표기 규칙

참고

이 구문은 Azure Synapse Analytics의 서버리스 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 권한이 있어야 하고 비대칭 키의 프라이빗 키를 암호화하는 데 사용된 암호를 알고 있어야 합니다.

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

예제

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

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

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

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

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

USE AdventureWorks2022;  
-- 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   

관련 항목

CREATE SYMMETRIC KEY(Transact-SQL)
ALTER SYMMETRIC KEY(Transact-SQL)
CLOSE SYMMETRIC KEY(Transact-SQL)
DROP SYMMETRIC KEY(Transact-SQL)
암호화 계층
EKM(확장 가능 키 관리)