将证书导出到文件中。
语法
![](http://writeblog.csdn.net/Editor/FCKeditor/editor/images/spacer.gif)
BACKUP CERTIFICATE certname TO FILE = 'path_to_file'
[ WITH PRIVATE KEY
(
FILE = 'path_to_private_key_file' ,
ENCRYPTION BY PASSWORD = 'encryption_password'
[ , DECRYPTION BY PASSWORD = 'decryption_password' ]
)
]
参数
![](http://writeblog.csdn.net/Editor/FCKeditor/editor/images/spacer.gif)
-
path_to_file
-
指定要保存证书的文件的完整路径(包括文件名)。此路径可能是本地路径,也可能是网络位置的 UNC 路径。默认路径为 SQL Server DATA 文件夹的路径。
-
path_to_private_key_file
-
指定要保存私钥的文件的完整路径(包括文件名)。此路径可能是本地路径,也可能是网络位置的 UNC 路径。默认路径为 SQL Server DATA 文件夹的路径。
-
encryption_password
-
用于在将密钥写入备份文件之前对私钥进行加密的密码。该密码需要进行复杂性检查。
-
decryption_password
-
用于在备份密钥之前对私钥进行解密的密码。
备注
![](http://writeblog.csdn.net/Editor/FCKeditor/editor/images/spacer.gif)
如果在数据库中使用密码对私钥进行加密,则必须指定解密密码。
将私钥备份到文件时,需要进行加密。用于保护备份证书的密码与用于对证书的私钥进行加密的密码不是同一密码。
若要还原备份的证书,请使用 CREATE CERTIFICATE 语句。
权限
![](http://writeblog.csdn.net/Editor/FCKeditor/editor/images/spacer.gif)
要求对证书具有 CONTROL 权限,并且了解用于对私钥进行加密的密码的相关信息。如果只备份证书的公共部分,则要求对证书具有某种权限,并且不拒绝调用方对证书的 VIEW 权限。
示例
![](http://writeblog.csdn.net/Editor/FCKeditor/editor/images/spacer.gif)
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