我们如何在SSMS中查看加密存储过程的主体?

mas*_*ani 4 sql-server encryption stored-procedures sql-server-2008

我创建了一个新的存储过程WITH ENCRYPTION语句,现在我想查看它的主体.

解决办法是什么?

Mil*_*dic 5

如果使用ENCRYPTED选项创建存储过程,SQL Server将以模糊格式在内部存储包含对象定义的文本

对象的实际定义存储在无法直接访问的系统表sys.sysobjvalues中.通过使用专用管理员连接(DAC)连接到SQL Server,您可以选择存储信息的imageval列

如果您的公司或您的客户不允许您使用第三方工具,请参阅此帖子,了解如何解密加密对象:

http://www.mssqltips.com/sqlservertip/2964/encrypting-and-decrypting-sql-server-stored-procedures-views-and-userdefined-functions/

但是,最简单的方法是使用第三方工具

其中一个是ApexSQL Complete,一个免费的SSMS和VS插件

在ApexSQL中,完整加密对象作为任何其他SQL Server对象进行处理,并显示其DDL脚本,即使使用Decrypt加密对象选项进行加密

加密对象的脚本显示在内联对象详细信息对话框中:

在此输入图像描述

免责声明:我作为支持工程师为ApexSQL工作