2012-03-12 51 views

回答

3

保持脚本周围创建摆在首位的存储过程。

有一旦它被使用此选项创建检索过程的文本没有任何记载手段。有提示CREATE PROCEDURE,如果你绝望中恢复文本:

ENCRYPTION

表示SQL Server将在CREATE PROCEDURE语句的原始文本转换为模糊格式。 SQL Server中的任何目录视图中都不直接显示混淆输出。无权访问系统表或数据库文件的用户无法检索混淆文本。然而,该文本将提供给特权用户谁在DAC端口既可以访问系统表,或直接访问数据库文件。而且,谁又能调试器附着在该服务器进程的用户可以在运行时从内存中检索解密程序。

也就是说,您必须使用DAC连接并查询未记录的表格 - SSMS当然没有可视化选项。

5

在当存储的过程与加密的选项创建的情况下,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完全加密的对象作为自己的DDL脚本显示,在添加任何其他SQL Server对象进行处理,即使是使用解密被加密的对象选项

加密对象的脚本中显示加密嵌入对象的详细信息对话框:

enter image description here

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