校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > SQLSERVER對加密的存儲過程、視圖、觸發器進行解密(推薦)

SQLSERVER對加密的存儲過程、視圖、觸發器進行解密(推薦)

熱門標簽:實體店地圖標注怎么標 外呼系統會封嗎 在電子版地圖標注要收費嗎 萬利達綜合醫院地圖標注點 電銷機器人 深圳 南京電銷外呼系統哪家好 地圖標注如何弄全套標 武漢AI電銷機器人 股票配資電銷機器人

加密測試的存儲過程

IF EXISTS(SELECT 1 FROM SYSOBJECTS WHERE TYPE='P' AND NAME='P_TEST')
DROP PROCEDURE P_TEST
GO
CREATE PROCEDURE P_TEST(@USERNAME VARCHAR(20),@MSG VARCHAR(20) OUTPUT)
WITH ENCRYPTION
AS
BEGIN
  IF(SELECT COUNT(1) FROM Custs WHERE NAME=@USERNAME)>0
    SET @MSG='此用戶名存在'
  ELSE
    SET @MSG='此用戶名不存在'
END

解密的存儲過程

Create PROCEDURE Decryption(@procedure sysname = NULL)
AS
SET NOCOUNT ON
DECLARE @intProcSpace bigint, @t bigint, @maxColID smallint,@procNameLength int
select @maxColID = max(subobjid) FROM
sys.sysobjvalues WHERE objid = object_id(@procedure)
--select @maxColID as 'Rows in sys.sysobjvalues'
select @procNameLength = datalength(@procedure) + 29
DECLARE @real_01 nvarchar(max)
DECLARE @fake_01 nvarchar(max)
DECLARE @fake_encrypt_01 nvarchar(max)
DECLARE @real_decrypt_01 nvarchar(max),@real_decrypt_01a nvarchar(max)
declare @objtype varchar(2),@ParentName nvarchar(max)
select @real_decrypt_01a = ''
--提取對象的類型如是存儲過程還是函數,如果是觸發器,還要得到其父對象的名稱
select @objtype=type,@parentname=object_name(parent_object_id)
from sys.objects where [object_id]=object_id(@procedure)
-- 從sys.sysobjvalues里提出加密的imageval記錄
SET @real_01=(SELECT top 1 imageval FROM sys.sysobjvalues WHERE objid =
object_id(@procedure) and valclass = 1 order by subobjid)
 
--創建一個臨時表
create table #output ( [ident] [int] IDENTITY (1, 1) NOT NULL ,
[real_decrypt] NVARCHAR(MAX) )
--開始一個事務,稍后回滾
BEGIN TRAN
--更改原始的存儲過程,用短橫線替換
if @objtype='P'
 SET @fake_01='ALTER PROCEDURE '+ @procedure +' WITH ENCRYPTION AS select 1
 /**//*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/'
else if @objtype='FN'
 SET @fake_01='ALTER FUNCTION '+ @procedure +'() RETURNS INT WITH ENCRYPTION AS BEGIN RETURN 1
 /**//*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/ END'
else if @objtype='V'
 SET @fake_01='ALTER view '+ @procedure +' WITH ENCRYPTION AS select 1 as col
 /**//*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/'
else if @objtype='TR'
 SET @fake_01='ALTER trigger '+ @procedure +' ON '+@parentname+'WITH ENCRYPTION AFTER INSERT AS RAISERROR (''N'',16,10)
 /**//*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/'
EXECUTE (@fake_01)
--從sys.sysobjvalues里提出加密的假的
SET @fake_encrypt_01=(SELECT top 1 imageval FROM sys.sysobjvalues WHERE objid =
object_id(@procedure) and valclass = 1 order by subobjid )
if @objtype='P'
 SET @fake_01='Create PROCEDURE '+ @procedure +' WITH ENCRYPTION AS select 1
 /**//*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/'
else if @objtype='FN'
 SET @fake_01='CREATE FUNCTION '+ @procedure +'() RETURNS INT WITH ENCRYPTION AS BEGIN RETURN 1
 /**//*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/ END'
else if @objtype='V'
 SET @fake_01='Create view '+ @procedure +' WITH ENCRYPTION AS select 1 as col
 /**//*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/'
else if @objtype='TR'
 SET @fake_01='Create trigger '+ @procedure +' ON '+@parentname+'WITH ENCRYPTION AFTER INSERT AS RAISERROR (''N'',16,10)
 /**//*'+REPLICATE(cast('*'as nvarchar(max)), datalength(@real_01) /2 - @procNameLength)+'*/'
--開始計數
SET @intProcSpace=1
--使用字符填充臨時變量
SET @real_decrypt_01 = replicate(cast('A'as nvarchar(max)), (datalength(@real_01) /2 ))
--循環設置每一個變量,創建真正的變量
--每次一個字節
SET @intProcSpace=1
--如有必要,遍歷每個@real_xx變量并解密
WHILE @intProcSpace=(datalength(@real_01)/2)
BEGIN
--真的和假的和加密的假的進行異或處理
SET @real_decrypt_01 = stuff(@real_decrypt_01, @intProcSpace, 1,
NCHAR(UNICODE(substring(@real_01, @intProcSpace, 1)) ^
(UNICODE(substring(@fake_01, @intProcSpace, 1)) ^
UNICODE(substring(@fake_encrypt_01, @intProcSpace, 1)))))
SET @intProcSpace=@intProcSpace+1
END
 
 
--通過sp_helptext邏輯向表#output里插入變量
insert #output (real_decrypt) select @real_decrypt_01
--select real_decrypt AS '#output chek' from #output --測試
-- -------------------------------------
--開始從sp_helptext提取
-- -------------------------------------
declare @dbname sysname
,@BlankSpaceAdded int
,@BasePos int
,@CurrentPos int
,@TextLength int
,@LineId int
,@AddOnLen int
,@LFCR int --回車換行的長度
,@DefinedLength int
,@SyscomText nvarchar(max)
,@Line nvarchar(255)
Select @DefinedLength = 255
SELECT @BlankSpaceAdded = 0 --跟蹤行結束的空格。注意Len函數忽略了多余的空格
CREATE TABLE #CommentText
(LineId int
,Text nvarchar(255) collate database_default)
--使用#output代替sys.sysobjvalues
DECLARE ms_crs_syscom CURSOR LOCAL
FOR SELECT real_decrypt from #output
ORDER BY ident
FOR READ ONLY
--獲取文本
SELECT @LFCR = 2
SELECT @LineId = 1
OPEN ms_crs_syscom
FETCH NEXT FROM ms_crs_syscom into @SyscomText
WHILE @@fetch_status >= 0
BEGIN
SELECT @BasePos = 1
SELECT @CurrentPos = 1
SELECT @TextLength = LEN(@SyscomText)
WHILE @CurrentPos != 0
BEGIN
--通過回車查找行的結束
SELECT @CurrentPos = CHARINDEX(char(13)+char(10), @SyscomText,
@BasePos)
--如果找到回車
IF @CurrentPos != 0
BEGIN
--如果@Lines的長度的新值比設置的大就插入@Lines目前的內容并繼續
While (isnull(LEN(@Line),0) + @BlankSpaceAdded +
@CurrentPos-@BasePos + @LFCR) > @DefinedLength
BEGIN
SELECT @AddOnLen = @DefinedLength-(isnull(LEN(@Line),0) +
@BlankSpaceAdded)
INSERT #CommentText VALUES
( @LineId,
isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText,
@BasePos, @AddOnLen), N''))
SELECT @Line = NULL, @LineId = @LineId + 1,
@BasePos = @BasePos + @AddOnLen, @BlankSpaceAdded = 0
END
SELECT @Line = isnull(@Line, N'') +
isnull(SUBSTRING(@SyscomText, @BasePos, @CurrentPos-@BasePos + @LFCR), N'')
SELECT @BasePos = @CurrentPos+2
INSERT #CommentText VALUES( @LineId, @Line )
SELECT @LineId = @LineId + 1
SELECT @Line = NULL
END
ELSE
--如果回車沒找到
BEGIN
IF @BasePos = @TextLength
BEGIN
--如果@Lines長度的新值大于定義的長度
While (isnull(LEN(@Line),0) + @BlankSpaceAdded +
@TextLength-@BasePos+1 ) > @DefinedLength
BEGIN
SELECT @AddOnLen = @DefinedLength -
(isnull(LEN(@Line),0) + @BlankSpaceAdded)
INSERT #CommentText VALUES
( @LineId,
isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText,
@BasePos, @AddOnLen), N''))
SELECT @Line = NULL, @LineId = @LineId + 1,
@BasePos = @BasePos + @AddOnLen, @BlankSpaceAdded =
0
END
SELECT @Line = isnull(@Line, N'') +
isnull(SUBSTRING(@SyscomText, @BasePos, @TextLength-@BasePos+1 ), N'')
if LEN(@Line)  @DefinedLength and charindex(' ',
@SyscomText, @TextLength+1 ) > 0
BEGIN
SELECT @Line = @Line + ' ', @BlankSpaceAdded = 1
END
END
END
END
FETCH NEXT FROM ms_crs_syscom into @SyscomText
END
IF @Line is NOT NULL
INSERT #CommentText VALUES( @LineId, @Line )
select Text from #CommentText order by LineId
CLOSE ms_crs_syscom
DEALLOCATE ms_crs_syscom
DROP TABLE #CommentText
-- -------------------------------------
--結束從sp_helptext提取
-- -------------------------------------
--刪除用短橫線創建的存儲過程并重建原始的存儲過程
ROLLBACK TRAN
DROP TABLE #output
GO
啟用DAC
SP_CONFIGURE 'remote admin connections';
GO
----0:僅允許本地連接使用 DAC,1:允許遠程連接使用 DAC
SP_CONFIGURE 'remote admin connections', 0;
GO
RECONFIGURE WITH OVERRIDE;
GO 

文件——>新建——>數據庫引擎查詢

服務器名稱:admin:.或者admin:服務器名稱

登錄進去執行解密操作

USE TEST
EXEC Decryption P_TEST
GO

為了安全起見,不要在正式環境進行解密,避免在解密過程中將原存儲過程損壞!

總結

以上所述是小編給大家介紹的SQLSERVER對加密的存儲過程、視圖、觸發器進行解密,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

您可能感興趣的文章:
  • 關于喜憂參半的SQL Server觸發器詳解
  • 利用SQL Server觸發器實現表的歷史修改痕跡記錄
  • SQL Server 使用觸發器(trigger)發送電子郵件步驟詳解
  • SQL Server實現用觸發器捕獲DML操作的會話信息【實例】
  • SQL Server:觸發器實例詳解
  • SqlServer觸發器詳解
  • SqlServer實現類似Oracle的before觸發器示例
  • SQL SERVER中各類觸發器的完整語法及參數說明
  • SQL SERVER 觸發器介紹
  • SQL Server誤區30日談 第4天 DDL觸發器就是INSTEAD OF觸發器
  • SQL Server 觸發器詳情

標簽:武威 泰安 汕頭 濟寧 濟源 臺州 安徽 廣東

巨人網絡通訊聲明:本文標題《SQLSERVER對加密的存儲過程、視圖、觸發器進行解密(推薦)》,本文關鍵詞  SQLSERVER,對,加密,的,存儲,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQLSERVER對加密的存儲過程、視圖、觸發器進行解密(推薦)》相關的同類信息!
  • 本頁收集關于SQLSERVER對加密的存儲過程、視圖、觸發器進行解密(推薦)的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    免费高清在线视频一区·| 中文子幕无线码一区tr| 欧美亚洲国产bt| 久久久久国色av免费看影院| 亚洲v中文字幕| 欧美日韩国产综合一区二区三区| 亚洲免费观看高清完整版在线观看熊| 不卡的电影网站| 亚洲色图丝袜美腿| 色综合天天综合网天天看片| 日韩久久一区二区| 91美女在线视频| 亚洲午夜一二三区视频| 91国内精品野花午夜精品| 2020国产精品| 成人一道本在线| 亚洲免费观看高清完整版在线| 色综合婷婷久久| 三级影片在线观看欧美日韩一区二区| 91精品国产91久久久久久最新毛片| 日韩精品电影在线观看| 国产人成一区二区三区影院| 极品少妇xxxx精品少妇偷拍| 欧美激情一区二区三区蜜桃视频| jizz一区二区| 国产精品成人免费| 欧亚一区二区三区| 美女视频网站黄色亚洲| 久久看人人爽人人| 91色九色蝌蚪| 日本网站在线观看一区二区三区 | 日本sm残虐另类| 精品国产乱码91久久久久久网站| 丰满白嫩尤物一区二区| 亚洲一区免费观看| 久久久三级国产网站| 91黄视频在线| 国产一区在线观看麻豆| 亚洲一区二区精品视频| 国产色一区二区| 欧美精品在线一区二区| 不卡大黄网站免费看| 久久精品国产免费| 亚洲一级电影视频| 国产精品美女一区二区三区 | 亚洲福利视频一区二区| 亚洲国产激情av| 欧美一区二区三区在线看| 99久久精品久久久久久清纯| 不卡在线观看av| 亚洲精品一区二区三区福利| 色偷偷久久一区二区三区| 国内精品伊人久久久久av影院| 亚洲国产精品自拍| 亚洲三级视频在线观看| 国产色综合久久| 久久综合成人精品亚洲另类欧美 | 日韩高清一级片| 亚洲激情自拍偷拍| 国产精品久久久久桃色tv| 欧美大黄免费观看| 欧美巨大另类极品videosbest | 欧美亚洲国产一区二区三区 | 久久日一线二线三线suv| 欧美美女网站色| 在线精品视频小说1| 91在线看国产| 成人中文字幕在线| 免费在线成人网| 美女一区二区三区在线观看| 亚洲国产cao| 夜夜嗨av一区二区三区四季av| 国产精品国模大尺度视频| 国产在线观看一区二区| 久久激情五月婷婷| 蜜桃视频免费观看一区| 久热成人在线视频| 九九**精品视频免费播放| 捆绑调教美女网站视频一区| 蜜臀av一区二区| 久久成人久久爱| 精品无码三级在线观看视频| 国产在线视频不卡二| 国产麻豆91精品| 成人精品亚洲人成在线| 成人网男人的天堂| 91视视频在线直接观看在线看网页在线看| av福利精品导航| 欧美在线不卡视频| 91.成人天堂一区| 精品国产123| 国产精品久久99| 亚洲午夜在线电影| 久久狠狠亚洲综合| 99久久精品费精品国产一区二区 | 成人综合婷婷国产精品久久免费| 91玉足脚交白嫩脚丫在线播放| 色欧美片视频在线观看在线视频| 精品视频一区二区三区免费| 精品欧美一区二区在线观看| 久久精品欧美一区二区三区麻豆| 国产精品久久久久影院老司| 亚洲影院久久精品| 蜜臀a∨国产成人精品| 国产福利精品导航| 91在线观看地址| 欧美日韩一区二区在线视频| 2023国产一二三区日本精品2022| 最新国产成人在线观看| 男女男精品视频网| 成人高清免费观看| 欧美一区二区三区影视| 亚洲伦理在线精品| 国内外成人在线视频| 欧美亚日韩国产aⅴ精品中极品| 欧美xxx久久| 亚洲一区二区三区四区在线免费观看| 极品销魂美女一区二区三区| 欧美撒尿777hd撒尿| 国产精品卡一卡二| 精品一区二区精品| 欧美人伦禁忌dvd放荡欲情| 国产精品乱子久久久久| 久久电影网电视剧免费观看| 欧美亚洲一区三区| 国产精品久久福利| 国产成人综合视频| 欧美精品日韩一区| 一区二区三区在线免费视频| 国产不卡免费视频| 欧美成人精品高清在线播放| 亚洲国产视频网站| 色哟哟在线观看一区二区三区| 国产欧美日韩在线视频| 久久精品国产久精国产爱| 欧美高清你懂得| 亚洲福中文字幕伊人影院| 色美美综合视频| 亚洲精品视频观看| 99精品久久99久久久久| 亚洲国产精品成人综合| 国产 日韩 欧美大片| 国产亚洲欧美激情| 国产激情一区二区三区四区 | 国产老肥熟一区二区三区| 精品裸体舞一区二区三区| 五月婷婷另类国产| 欧美日韩精品专区| 亚洲午夜视频在线| 欧美三级乱人伦电影| 婷婷久久综合九色综合绿巨人 | 欧洲视频一区二区| 亚洲欧美偷拍另类a∨色屁股| 99热精品国产| 日韩一区中文字幕| 色综合天天综合网国产成人综合天| 国产女人18毛片水真多成人如厕| 国产精品综合在线视频| 日本一区二区三区在线观看| 懂色av中文一区二区三区| 欧美激情自拍偷拍| 成人精品一区二区三区四区| 国产精品全国免费观看高清| 国产专区欧美精品| 欧美日韩激情在线| 久久国产精品99久久人人澡| 精品国产99国产精品| 成人美女视频在线看| 亚洲综合成人网| 91精品麻豆日日躁夜夜躁| 久88久久88久久久| 五月综合激情日本mⅴ| 一区在线观看视频| 日韩欧美综合在线| 色天天综合久久久久综合片| 激情亚洲综合在线| 午夜电影久久久| 一区二区三区中文在线| 久久久精品2019中文字幕之3| 欧美丝袜丝交足nylons图片| 成人综合在线网站| 久久狠狠亚洲综合| 欧美a一区二区| 亚洲图片有声小说| 亚洲天天做日日做天天谢日日欢| 久久人人爽人人爽| 日韩三级视频在线看| 欧美一区二视频| 欧美色老头old∨ideo| 一本到一区二区三区| 91最新地址在线播放| av一本久道久久综合久久鬼色| 国产做a爰片久久毛片| 午夜久久福利影院| 亚洲成人动漫精品| 亚洲精品国产第一综合99久久| 欧美国产日韩亚洲一区| 久久久久九九视频| 国产日产欧美一区| 国产精品欧美久久久久无广告|