問題一: 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,最新的,修正很長的存儲過程解密出來是空白的問題):