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