BACKUP CERTIFICATE(Transact-SQL)

적용 대상:yesSQL Server(지원되는 모든 버전) yes분석 플랫폼 시스템(PDW)

인증서를 파일로 내보냅니다.

참고

SQL Server 2022에서 프라이빗 키가 있는 인증서는 PKCS(공개 키 쌍) #12 또는 PFX(개인 정보 교환) 형식을 사용하여 파일 또는 이진 Blob에서/로 직접 백업하거나 복원할 수 있습니다.

PKCS #12 또는 PFX 형식은 서버 인증서, 중간 인증서 및 프라이빗 키를 한 파일에 저장하기 위한 이진 형식입니다. PFX 파일은 일반적으로 .pfx, .p12 같은 확장명이 있습니다. 이를 통해 고객은 PVKConverter(PVK 또는 DER 형식의 경우)와 같은 변환 도구를 사용할 필요 없이 RC4 암호화를 금지하는 현재 보안 모범 사례 지침 및 규정 준수 표준을 더 쉽게 준수할 수 있습니다.

link iconTransact-SQL 구문 규칙

구문

-- Syntax for SQL Server  
  
BACKUP CERTIFICATE certname TO FILE = 'path_to_file'  
    [ WITH
      [FORMAT = 'PFX',]
      PRIVATE KEY   
      (   
        FILE = 'path_to_private_key_file' ,  
        ENCRYPTION BY PASSWORD = 'encryption_password'   
        [ , DECRYPTION BY PASSWORD = 'decryption_password' ]   
      )   
    ]  
-- Syntax for Parallel Data Warehouse  
  
BACKUP CERTIFICATE certname TO FILE ='path_to_file'  
      WITH PRIVATE KEY   
      (   
        FILE ='path_to_private_key_file',  
        ENCRYPTION BY PASSWORD ='encryption_password'   
      )   

참고

SQL Server 2014 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

certname
백업할 인증서의 이름입니다.

TO FILE = 'path_to_file'
인증서를 저장할 파일에 대해 파일 이름을 포함한 전체 경로를 지정합니다. 이 경로는 로컬 경로 또는 네트워크 위치에 대한 UNC 경로일 수 있습니다. 파일 이름만 지정한 경우 파일은 인스턴스의 기본 사용자 데이터 폴더(SQL Server DATA 폴더일 수도 있고 아닐 수도 있음)에 저장됩니다. SQL Server Express LocalDB의 경우 인스턴스의 기본 사용자 데이터 폴더는 인스턴스를 만든 계정의 %USERPROFILE% 환경 변수에 의해 지정된 경로입니다.

WITH FORMAT = 'PFX'
적용 대상: SQL Server 2022 이상
인증서와 그 프라이빗 키를 PFX 파일로 내보내도록 지정합니다. 이 절은 옵션입니다.

WITH PRIVATE KEY 인증서의 프라이빗 키를 파일에 저장되도록 지정합니다. 이 절은 옵션입니다.

FILE = 'path_to_private_key_file'
프라이빗 키를 저장할 파일에 대해 파일 이름을 포함한 전체 경로를 지정합니다. 이 경로는 로컬 경로 또는 네트워크 위치에 대한 UNC 경로일 수 있습니다. 파일 이름만 지정한 경우 파일은 인스턴스의 기본 사용자 데이터 폴더(SQL Server DATA 폴더일 수도 있고 아닐 수도 있음)에 저장됩니다. SQL Server Express LocalDB의 경우 인스턴스의 기본 사용자 데이터 폴더는 인스턴스를 만든 계정의 %USERPROFILE% 환경 변수에 의해 지정된 경로입니다.

ENCRYPTION BY PASSWORD = 'encryption_password'
키를 백업 파일에 작성하기 전에 프라이빗 키를 암호화하는 데 사용되는 암호입니다. 이 암호의 복잡성을 확인해야 합니다.

DECRYPTION BY PASSWORD = 'decryption_password'
키를 백업하기 전에 프라이빗 키의 암호를 해독하는 데 사용되는 암호입니다. 이 인수는 인증서가 마스터 키로 암호화된 경우에는 필요하지 않습니다.

설명

프라이빗 키가 데이터베이스에 있는 암호로 암호화된 경우 암호 해독 암호를 지정해야 합니다.

프라이빗 키를 파일로 백업할 때는 암호화가 필요합니다. 파일의 프라이빗 키를 보호하는 데 사용되는 암호는 데이터베이스에 있는 인증서의 프라이빗 키를 암호화하는 데 사용되는 암호와 다릅니다.

프라이빗 키는 PVK 파일 형식으로 저장됩니다.

프라이빗 키의 유무와 관계없이 백업된 인증서를 복원하려면 CREATE CERTIFICATE 문을 사용합니다.

데이터베이스의 기존 인증서에 프라이빗 키를 복원하려면 ALTER CERTIFICATE 문을 사용합니다.

백업을 수행할 때 파일은 SQL Server 인스턴스의 서비스 계정에 대한 ACL이 됩니다. 다른 계정으로 실행되는 서버로 인증서를 복원해야 할 경우 새 계정에서 읽을 수 있도록 파일에 대한 권한을 조정해야 합니다.

사용 권한

인증서에 대한 CONTROL 권한이 필요하고 프라이빗 키를 암호화하는 데 사용된 암호를 알고 있어야 합니다. 인증서의 공개 파트만 백업하는 경우 이 명령을 사용하려면 인증서에 관한 일부 권한이 필요하며 인증서에 대한 호출자의 VIEW 권한이 거부되지 않아야 합니다.

예제

A. 인증서를 파일로 내보내기

다음 예에서는 인증서를 파일로 내보냅니다.

BACKUP CERTIFICATE sales05 TO FILE = 'c:\storedcerts\sales05cert';  
GO  

B. 인증서와 프라이빗 키 내보내기

다음 예에서는 백업된 인증서의 프라이빗 키가 암호 997jkhUbhk$w4ez0876hKHJH5gh를 사용하여 암호화됩니다.

BACKUP CERTIFICATE sales05 TO FILE = 'c:\storedcerts\sales05cert'  
    WITH PRIVATE KEY ( FILE = 'c:\storedkeys\sales05key' ,   
    ENCRYPTION BY PASSWORD = '997jkhUbhk$w4ez0876hKHJH5gh' );  
GO  

C. 프라이빗 키가 암호화된 인증서 내보내기

다음 예에서 인증서의 프라이빗 키가 데이터베이스에서 암호화됩니다. 프라이빗 키는 암호 9875t6#6rfid7vble7r로 암호화되어야 합니다. 인증서가 백업 파일에 저장될 때 프라이빗 키는 암호 9n34khUbhk$w4ecJH5gh로 암호화됩니다.

BACKUP CERTIFICATE sales09 TO FILE = 'c:\storedcerts\sales09cert'   
    WITH PRIVATE KEY ( DECRYPTION BY PASSWORD = '9875t6#6rfid7vble7r' ,  
    FILE = 'c:\storedkeys\sales09key' ,   
    ENCRYPTION BY PASSWORD = '9n34khUbhk$w4ecJH5gh' );  
GO  

D. 인증서와 그 프라이빗 키를 PFX 파일로 내보내기

BACKUP CERTIFICATE Shipping04 TO FILE = 'c:\storedcerts\shipping04cert.pfx'
WITH  
    FORMAT = 'PFX',  
    PRIVATE KEY ( 
ENCRYPTION BY PASSWORD = '9n34khUbhk$w4ecJH5gh',  
ALGORITHM = 'AES_256'
    )

참고 항목

CREATE CERTIFICATE(Transact-SQL)
ALTER CERTIFICATE(Transact-SQL)
DROP CERTIFICATE(Transact-SQL)
CERTENCODED(Transact-SQL)
CERTPRIVATEKEY(Transact-SQL)
CERT_ID(Transact-SQL)
CERTPROPERTY(Transact-SQL)