问题一: DAC连接问题

自己尝试了n次,最后总结一下连接步骤:

1 先用有sysadmin角色的用户登陆SQL Server Management Studio;

2 在工具栏上选数据库引擎查询;服务器名称改为 ADMIN:服务器名称 ;选项>连接属性>连接到数据库 改为加密存储过程所在的数据库;连接

3 运行解密的存储过程;

问题二: 可用的存储过程解密代码

SQLServer2005里怎样对使用with encryption选项创建的存储过程解密

--王成辉翻译整理,转贴请注明出自微软BI开拓者www.windbi.com
--原帖地址

SQLServer2005里使用with encryption选项创建的存储过程仍然和sqlserver2000里一样,都是使用XOR进行了的加密。和2000不一样的是,在2005的系统表syscomments里已经查不到加密过的密文了。要查密文必须使用DAC(专用管理员连接)连接到数据库后,在系统表sys.sysobjvalues查询,该表的列imageval存储了相应的密文。具体可以使用下面的查询:

SELECT imageval FROM sys.sysobjvalues WHERE objid = object_id(@procedure) AND
valclass = 1 AND subobjid = 1

下面是解密的存储过程,具体代码如下(这是版本4.0,最新的,修正很长的存储过程解密出来是空白的问题):

 

Code

 

Code

 

posted on 2009-06-08 19:16  amaoxp  阅读(2858)  评论(4编辑  收藏  举报