問題一: DAC連接問題
自己嘗試了n次,最后總結(jié)一下連接步驟:
1 先用有sysadmin角色的用戶登陸SQL Server Management Studio;
2 在工具欄上選數(shù)據(jù)庫(kù)引擎查詢;服務(wù)器名稱改為 ADMIN:服務(wù)器名稱 ;選項(xiàng)>連接屬性>連接到數(shù)據(jù)庫(kù) 改為加密存儲(chǔ)過程所在的數(shù)據(jù)庫(kù);連接
3 運(yùn)行解密的存儲(chǔ)過程;
問題二: 可用的存儲(chǔ)過程解密代碼
SQLServer2005里怎樣對(duì)使用with encryption選項(xiàng)創(chuàng)建的存儲(chǔ)過程解密
--王成輝翻譯整理,轉(zhuǎn)貼請(qǐng)注明出自微軟BI開拓者www.windbi.com
--原帖地址
SQLServer2005里使用with encryption選項(xiàng)創(chuàng)建的存儲(chǔ)過程仍然和sqlserver2000里一樣,都是使用XOR進(jìn)行了的加密。和2000不一樣的是,在2005的系統(tǒng)表syscomments里已經(jīng)查不到加密過的密文了。要查密文必須使用DAC(專用管理員連接)連接到數(shù)據(jù)庫(kù)后,在系統(tǒng)表sys.sysobjvalues查詢,該表的列imageval存儲(chǔ)了相應(yīng)的密文。具體可以使用下面的查詢:
SELECT imageval FROM sys.sysobjvalues WHERE objid = object_id(@procedure) AND
valclass = 1 AND subobjid = 1
下面是解密的存儲(chǔ)過程,具體代碼如下(這是版本4.0,最新的,修正很長(zhǎng)的存儲(chǔ)過程解密出來(lái)是空白的問題):