存储过程批量加密,解密

存储过程批量加密,解密

ID:37741744

大小:54.00 KB

页数:7页

时间:2019-05-30

存储过程批量加密,解密_第1页
存储过程批量加密,解密_第2页
存储过程批量加密,解密_第3页
存储过程批量加密,解密_第4页
存储过程批量加密,解密_第5页
资源描述:

《存储过程批量加密,解密》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、--参考:下面给出了一个存储过程,它的作用是自动将当前数据库的用户存储过程加密。DECLARE@sp_namenvarchar(400)DECLARE@sp_contentnvarchar(2000)DECLARE@asbeginintdeclare@nowdatetimeselect@now=getdate()DECLAREsp_cursorCURSORFORSELECTobject_name(id)FROMsysobjectsWHERExtype='P'ANDtype='P'ANDcrdate<@nowANDOBJECTPROPERTY(id,'IsM

2、SShipped')=0OPENsp_cursorFETCHNEXTFROMsp_cursorINTO@sp_nameWHILE@@FETCH_STATUS=0BEGINSELECT@sp_content=textFROMsyscommentsWHEREid=OBJECT_ID(@sp_name)SELECT@asbegin=PATINDEX('%AS'+char(13)+'%',@sp_content)SELECT@sp_content=SUBSTRING(@sp_content,1,@asbegin-1)+'WITHENCRYPTIONAS'+SUBS

3、TRING(@sp_content,@asbegin+2,LEN(@sp_content))SELECT@sp_name='DROPPROCEDURE['+@sp_name+']'EXECsp_executesql@sp_nameEXECsp_executesql@sp_contentFETCHNEXTFROMsp_cursorINTO@sp_nameENDCLOSEsp_cursorDEALLOCATEsp_cursor该存储过程利用了sysobjects和syscomments表,并巧妙地修改了原存储过程的SQL定义语句,将AS修改为了WITHENCR

4、YPTIONAS,从而达到了加密存储过程的目的。本存储过程在SQLServer2000上通过。存储过程解密(破解函数,过程,触发器,视图.仅限于SQLSERVER2000)--*//*--调用示例:--解密指定存储过程execsp_decrypt'存储过程名'--*/createPROCEDUREsp_decrypt(@objectNamevarchar(50))ASbeginbegintrandeclare@objectname1varchar(100),@orgvarbinvarbinary(8000)declare@sql1nvarchar(4000

5、),@sql2nvarchar(4000),@sql3nvarchar(4000),@sql4nvarchar(4000),@sql5nvarchar(4000),@sql6nvarchar(4000),@sql7nvarchar(4000),@sql8nvarchar(4000),@sql9nvarchar(4000),@sql10nvarchar(4000)DECLARE@OrigSpText1nvarchar(4000),@OrigSpText2nvarchar(4000),@OrigSpText3nvarchar(4000),@resultspnv

6、archar(4000)declare@iint,@statusint,@typevarchar(10),@parentidintdeclare@colidint,@nint,@qint,@jint,@kint,@encryptedint,@numberintselect@type=xtype,@parentid=parent_objfromsysobjectswhereid=object_id(@ObjectName)createtable#temp(numberint,colidint,ctextvarbinary(8000),encryptedint

7、,statusint)insert#tempSELECTnumber,colid,ctext,encrypted,statusFROMsyscommentsWHEREid=object_id(@objectName)select@number=max(number)from#tempset@k=0while@k<=@numberbeginifexists(select1fromsyscommentswhereid=object_id(@objectname)andnumber=@k)beginif@type='P'set@sql1=(casewhen@nu

8、mber>1then'ALTERPROCEDURE'+@objec

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。