哪里可以使用CERTENCODED?

时间:2013-01-09 08:08:35

标签: sql-server-2008

有人能举例说明CERTENCODED吗?虽然我已经读过它,但我无法理解CERTENCODED函数的用途。

1 个答案:

答案 0 :(得分:0)

该函数以使用BACKUP CERTIFICATE语句获得的相同二进制.DEM格式返回证书的所有公共数据:

CREATE CERTIFICATE cert1
      ENCRYPTION BY PASSWORD = 'password'
      WITH SUBJECT = 'My test cert';

backup certificate cert1 to file = 'cert1.cer'

select CERTENCODED(CERT_ID('cert1'))
select * FROM OPENROWSET(BULK N'c:/.../cert1.cer', SINGLE_BLOB) rs;

您应该看到SELECT返回的两个数据字段是相同的。

然后,您可以将blob传输到另一个数据库并从中创建新证书(“CREATE CERTIFICATE ... FROM BINARY = 0x”,这样您就可以使用一个证书对数据进行编码,并使用另一个证书进行解码。将此函数视为保留证书的另一种方法,但不使用文件系统。

非常类似,您可以使用CERTPRIVATEKEY(...)从证书中获取私钥,然后用于在另一个数据库中创建兼容证书。