Har*_*ten 5 database sql-server key certificate public
我已将证书导入到SQL Server数据库中。
create certificate MyCertificate from file = 'c:\certificate.cer';
Run Code Online (Sandbox Code Playgroud)
现在,我想检索该证书的公钥。怎么做 ?
我可以
select * from sys.certificates
Run Code Online (Sandbox Code Playgroud)
但没有公钥列。
我知道我可以将其保存到磁盘
backup certificate MyCertificate to file = 'c:\MyCertificate.cer';
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的。我只需要数据库来告诉我公钥或以某种方式获得我的整个证书,但我不想使用文件。
编辑:
我想使用SQL Server和证书来验证数据库表中一行的数字签名。但是由于函数VerifySignedByCert不会检查证书的到期日期(根据此注释:加密和签名的内置函数不会检查证书的到期日期。这些函数的用户必须决定何时检查证书的到期时间。位于http:/ /msdn.microsoft.com/zh-CN/library/ms187798%28v=SQL.90%29.aspx)我必须使用C#代码手动进行操作。
这就是为什么我想要获取证书的公钥和到期日期(可以在sys.certificates中找到)。但是似乎将证书存储在表的varbinary列中是最佳选择。还是还有其他更好的方法来实现这一目标?
谢谢您的帮助
小智 1
您要查找的信息位于 master 数据库的 syscerts 表中。然而,没有简单的方法来获取这些数据。如果您试图获取密钥,也许您并没有尝试将证书用于 SQL Server 打算使用的目的?
如果您尝试在 SQL Server 中存储证书,但不使用它们来保证 SQL Server 的安全,那么您可能需要尝试将它们存储在表中的 varbinary 列中。这样的东西对你有用吗?
如果您提供有关您想要完成的任务的更多信息,我也许可以为您提供更多帮助。
以下是 SQL Server 中证书的详细概述:http://www.mssqltips.com/sqlservertip/1319/sql-server-2005-encryption-certificates-overview/
| 归档时间: |
|
| 查看次数: |
5076 次 |
| 最近记录: |