我在 Microsoft SQL Server 2008 R2 的数据库中有一个证书。我想获得证书的副本,以便将其刻录到 USB 设备上并放在保险箱中。我不想进入 sql server 机器本身,我想从我编写的客户端应用程序中完成所有这些。
我知道如何使用 BACKUP CERTIFICATE ( http://msdn.microsoft.com/en-us/library/ms178578.aspx ) 备份证书,但这只有保存到文件的选项。
我可以使用另一种技术(可能使用 sys.certificates)吗?
我们计划升级到 2014,因此如果有特定于该版本的功能,我可以使用它,但理想情况下,该解决方案应该适用于 2008R2。
SQL Server 2012 和 2014 中的新功能是两个新的加密函数,它们将返回您所描述的二进制流。CREATE CERTIFICATE 也已更新为采用二进制输入公钥和私钥。
CERTENCODED将以二进制形式返回证书的公钥部分。 CERTPRIVATEKEY将以二进制形式返回证书的私钥部分。这是加密的,因此还需要解密它的密码。
以上可以以二进制形式保存并写入磁盘,或者以二进制形式的文本表示形式存储并写入磁盘。
如果您需要再次创建它,请使用CREATE CERTIFICATE函数的 BINARY 选项。
编辑:2008R2 中没有任何东西可以通过系统功能完成我所知道的同样的事情。