MSSQL存储过程解密过程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL2000,SQL2005存储过程解密 第步操作步骤:程序-Sql Server2005-? 配置工具- Sql Server? 外围应用配置器- 功能的外围应用配置器- DataBase Engine-? DAC - 启用远程DAC 第二步:SQL Server Browser 服务 第三部使用DAC模式登陆(关键就在这个地方) ?????????登陆SQL Server Management Studio 2,新建查询,在弹出的连接对话框中,服务器名称改为 ADMIN:服务器名称;然后,选项-连接属性-连接到数据库 改为加密存储过程所在的数据库-连接即可. ????? 3 创建存储过程 sp_windbi$decrypt exec sp_windbi$Decrypt 你要解密的存储过程名,0 Create?PROCEDURE?[dbo].[sp_windbi$decrypt] (@procedure?sysname?=?NULL,?@revfl?int?=?1) AS /**//* 王成辉翻译整理,转贴请注明出自微软BI开拓者 调用形式为: exec?dbo.sp__windbi$decrypt?@procedure,0 如果第二个参数使用1的话,会给出该存储过程的一些提示。 --版本4.0??修正存储过程过长解密出来是空白的问题 */ SET?NOCOUNT?ON IF?@revfl?=?1 BEGIN PRINT?警告:该存储过程会删除并重建原始的存储过程。 PRINT??在运行该存储过程之前确保你的数据库有一个备份。 PRINT??该存储过程通常应该运行在产品环境的一个备份的非产品环境下。 PRINT??为了运行这个存储过程,将参数@refl的值更改为0。 RETURN?0 END 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?FUNCTIO

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档