BACKUP CERTIFICATE (Transact-SQL)
適用於:SQL Server Analytics Platform System (PDW)
將憑證匯出至檔案。
注意
在 SQL Server 2022 (16.x) 中,可以使用公開金鑰組 (PKCS) #12 或個人資訊交換 (PFX) 格式,直接從檔案或二進位 Blob 備份或還原具有私密金鑰的憑證。
PKCS #12 或 PFX 格式是二進位格式,用於將伺服器憑證、任何中繼憑證和私密金鑰儲存在一個檔案中。 PFX 檔案通常會有 .pfx
和 .p12
等副檔名。 這可讓客戶更輕鬆地遵守目前的安全性最佳做法指導方針和禁止 RC4 加密的合規性標準,因為不需要使用 PVKConverter 之類的轉換工具 (針對 PVK 或 DER 格式)。
語法
-- 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'
)
引數
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)