【问题标题】:Find out what stored procedures are signed using certificate in SQL Server 2008找出使用 SQL Server 2008 中的证书对哪些存储过程进行签名
【发布时间】:2013-04-24 09:53:08
【问题描述】:

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

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

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

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

提前感谢您的帮助..

【问题讨论】:

    标签: sql-server-2008 tsql stored-procedures certificate signature


    【解决方案1】:

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

    【讨论】:

    • 非常感谢。非常感谢。这是一个可能对人们有所帮助的小问题。它显示了由证书签名的存储过程以及它们所使用的证书。 select cer.name AS [Certificate], pro.name AS [Stored Procedure] from 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 排序
    • @MichaelDuffy 您的评论是质量添加的极好例子;它用完美的信息(表之间的关系,即要加入的列)扩展了答案,使其完全并立即有用。做得很好!
    【解决方案2】:
    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
    

    【讨论】:

    • 请尽可能用几句话解释一下。
    • 提交了一个编辑来澄清。此外,如果您特别想要just 存储过程,您可以用sys.procedures 替换sys.objects,和/或过滤obj.typeobj.type_desc(类型描述)。例如。 WHERE obj.type_desc = 'SQL_STORED_PROCEDURE'.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多