找出在SQL Server 2008中使用证书签名的存储过程

Mic*_*ffy 5 t-sql stored-procedures certificate signature sql-server-2008

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

我可以使用sys.procedures获取存储过程列表,我可以使用sys.certificates获取证书列表但我无法找到使用各种证书签署的存储过程

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

我花了很长时间在Google上搜索,但无济于事.

在此先感谢您的帮助..

Joh*_*020 6

你应该能够使用sys.crypt_properties来轻松搞定 - 请查看这里的msdn文章

  • 非常感谢.非常感谢.这是一个可能对人们有所帮助的小问题.它显示由证书签名的存储过程以及它们使用的证书.选择cer.name AS [Certificate],pro.name AS [Stored Procedure]来自sys.procedures pro inner join sys.crypt_properties cry on cry.major_id = pro.object_id inner join sys.certificates cer on cer.thumbprint = cry.thumbprint按cer.name排序 (8认同)

Fza*_*Fza 5

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
Run Code Online (Sandbox Code Playgroud)