我已将证书导入 SQL Server 数据库。
create certificate MyCertificate from file = 'c:\certificate.cer';
现在我想检索该证书的公钥。怎么做 ?
我可以
select * from sys.certificates
但没有公钥列。
我知道我可以通过
backup certificate MyCertificate to file = 'c:\MyCertificate.cer';
但这不是我想要的。我只需要数据库告诉我公钥或以某种方式让我获得整个证书,但我不想使用文件。
编辑:
我想使用 SQL Server 和证书验证数据库表中一行的数字签名。但是由于函数VerifySignedByCert不检查证书到期日期(根据此说明:用于加密和签名的内置函数不检查证书的到期日期。这些函数的用户必须决定何时检查证书到期日期。在http:// /msdn.microsoft.com/en-US/library/ms187798%28v=SQL.90%29.aspx)我必须在 C# 代码中手动完成。
这就是为什么我想获得证书公钥和到期日期(可以在 sys.certificates 中找到)。但似乎将证书存储在表的 varbinary 列中是最好的选择。还是有其他更好的方法来实现这一目标?
谢谢您的帮助