问题描述
我创建了一个新的存储过程 WITH ENCRYPTION
语句,现在我想查看它的正文。
是解决方案?
如果使用ENCRYPTED选项创建存储过程,SQL Server将内部存储具有定义的文本对象的模糊化格式
对象的实际定义存储在不能直接访问的系统表sys.sysobjvalues中。通过使用专用管理员连接(DAC)连接到SQL Server,您可以选择存储信息的imageval列
如果您不允许您的公司或您的客户端使用第三方工具看到这篇文章如何解密加密对象:
然而,最简单的方法是使用第三方工具p>
其中之一是,一个免费的SSMS和VS加载项
在ApexSQL中完整的加密对象被处理为任何其他SQL Server对象,除了DDL脚本是即使使用解密加密对象选项
,加密对象的脚本将显示在内联对象详细信息对话框中:
免责声明:我为ApexSQL作为支持工程师工作
I created a new stored procedure WITH ENCRYPTION
statement, now I want to view its body.
What is the solution?
In case when stored procedure is created with the ENCRYPTED option, SQL Server internally stores the text with the definition of the object in an obfuscated format
The actual definition of an object is stored in system table sys.sysobjvalues which is not directly accessible. By connecting to SQL Server using the Dedicated Administrator Connection (DAC) you can select the imageval column in which the information is stored
If you are not allowed by your company or your client to use third party tools see this post on how to decrypt the encrypted object:
However, the easiest way is to use the third party tools
One of them is ApexSQL Complete, a FREE SSMS and VS add-in
In ApexSQL Complete encrypted objects are handled as any other SQL Server object with addition that their DDL script is shown, even if it is encrypted using the Decrypt encrypted objects option
The script of an encrypted object is shown in the inline object details dialog:
Disclaimer: I work for ApexSQL as a Support Engineer
这篇关于我们如何在SSMS中查看加密存储过程的正文?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!