我正在生成一个数据库更新脚本,我想找出存储过程已使用各种证书进行签名。
我可以使用 sys.procedures 获取存储过程列表,并且可以使用 sys.certificates 获取证书列表,但我无法找出使用各种证书签署了哪些存储过程
是否有 sys.procedures_certificates 视图或类似的东西?也许 SQL Server Management Studio GUI 上有一种方法可以告诉我这个..
我花了很长时间在谷歌上搜索,但无济于事。
在此先感谢您的帮助..
我正在生成一个数据库更新脚本,我想找出存储过程已使用各种证书进行签名。
我可以使用 sys.procedures 获取存储过程列表,并且可以使用 sys.certificates 获取证书列表,但我无法找出使用各种证书签署了哪些存储过程
是否有 sys.procedures_certificates 视图或类似的东西?也许 SQL Server Management Studio GUI 上有一种方法可以告诉我这个..
我花了很长时间在谷歌上搜索,但无济于事。
在此先感谢您的帮助..
您应该能够使用 sys.crypt_properties 很容易地得到它 -在这里查看 msdn 文章
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