7

我正在生成一个数据库更新脚本,我想找出存储过程已使用各种证书进行签名。

我可以使用 sys.procedures 获取存储过程列表,并且可以使用 sys.certificates 获取证书列表,但我无法找出使用各种证书签署了哪些存储过程

是否有 sys.procedures_certificates 视图或类似的东西?也许 SQL Server Management Studio GUI 上有一种方法可以告诉我这个..

我花了很长时间在谷歌上搜索,但无济于事。

在此先感谢您的帮助..

4

2 回答 2

8

您应该能够使用 sys.crypt_properties 很容易地得到它 -在这里查看 msdn 文章

于 2013-04-24T12:46:22.767 回答
7
SELECT [Object Name] = object_name(cp.major_id),
       [Object Type] = obj.type_desc,   
       [Cert/Key] = coalesce(c.name, a.name),
       cp.crypt_type_desc
FROM   sys.crypt_properties cp
INNER JOIN sys.objects obj        ON obj.object_id = cp.major_id
LEFT   JOIN sys.certificates c    ON c.thumbprint = cp.thumbprint
LEFT   JOIN sys.asymmetric_keys a ON a.thumbprint = cp.thumbprint
ORDER BY [Object Name] ASC
于 2016-06-21T12:03:04.237 回答