BACKUP CERTIFICATE (Transact-SQL)

適用于:SQL Server (所有支援的版本) Analytics Platform System (PDW)

將憑證匯出至檔案。

注意

在 SQL Server 2022 (16.x) 中,可以使用公開金鑰組 (PKCS) #1 (2 或 PFX) 格式,直接從檔案或二進位 Blob 備份或還原具有私密金鑰的憑證。

PKCS #12 或 PFX 格式是二進位格式,用於將伺服器憑證、任何中繼憑證和私密金鑰儲存在一個檔案中。 PFX 檔案通常會有 和 等 .pfx.p12 副檔名。 這可讓客戶更輕鬆地遵守目前的安全性最佳做法指導方針和禁止 RC4 加密的合規性標準,因為不需要針對 PVK 或 DER 格式) 使用 PVKConverter (等轉換工具。

連結圖示連結Transact-SQL 語法慣例

Syntax

-- 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 (16.x) 和更新版本
指定將憑證及其私密金鑰匯出至 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 執行個體的服務帳戶將會套用存取控制清單。 如果您需要將憑證還原至以不同帳戶執行的伺服器,您必須調整檔案的許可權,讓新帳戶能夠讀取它們。

權限

需要憑證的 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)