好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

批量解密SQLSERVER数据库中的各种对象的工具dbForgeSQLDecrypt

批量 解密 SQLSERVER 数据库 中的 各种 对象 的 工具 dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT 工具 ,但是不太方便 SQLPROMPT5.3对 各种 加密 对象 的 解密 测试 SQL2005 解密 已经被加密的存储过程 昨天ahdung童鞋介绍

批量 解密 SQLSERVER 数据库 中的 各种 对象 的 工具 dbForge SQL Decryptor2.1.11

之前写过一篇文章,使用redgate公司的SQL PROMPT 工具 ,但是不太方便

SQLPROMPT5.3对 各种 加密 对象 的 解密 测试

SQL2005 解密 已经被加密的存储过程

昨天ahdung 童鞋介绍了这个 工具 给我,非常感谢他

dbForge SQL Decryptor这个 工具 的软件公司是devart,也是跟redgate公司一样,制作 各种 数据库 辅助 工具 和编程 工具 的一家比较出名的软件公司

官网: http://www.devart.com/

软件下载地址:

http://www.devart.com/dbforge/sql/sqldecryptor/download.html

http://files.cnblogs.com/lyhabc/sqldecryptor.rar

这个 工具 是免费的,不用破解,安装完毕,立刻可以用

在SQLSERVER 数据库 工具 当中还提供了另外一个免费 工具 :dbForge SQL Azure Backup

http://www.devart.com/dbforge/sql/

介绍

先说题外话:大家可以把这些第三方的 工具 放到外部 工具 里,这样只要打开SSMS,就不用在桌面找这些 工具 的图标再打开

相应 工具 了,速度可以快一倍,我就是这样做的,打开了SSMS就不用到桌面找这个软件,找那个软件

界面使用WPF编写,还是挺好的

登录界面做得挺有意思,可以使用传统的连接方式,也可以使用DAC连接或者自己写连接字符串

我们按照这篇文章创建好 各种 加密 对象 : SQLPROMPT5.3对 各种 加密 对象 的 解密 测试

包括视图,存储过程,函数,触发器

功能比较简单,界面跟SSMS差不多

就三个功能

选中你的 数据库 ,然后右键-》Decryption Wizard..

他会列出你所选择要显示的 解密 对象 类型,分别有:存储过程、用户定义函数、视图、表触发器、 数据库 触发器

你可以将 解密 的 各种 对象 的脚本保存到同一个脚本中或者每个 对象 一个脚本,我这里选择都保存在同一个脚本中

点击Execute之后,在桌面就会生成一个脚本.sql文件

把脚本拖到SSMS

  1   USE   pratice
   2   GO 
  3  
  4   SET  ANSI_NULLS, QUOTED_IDENTIFIER  ON 
  5   GO 
  6   /*  **************创建加密的存储过程******************  */ 
  7   Create   Procedure   CPP_test_Encryption 
   8   with   encryption
   9   AS 
 10   --  --可以换成任意的逻辑 
 11   execute   CPP_test_Original
  12   GO 
 13  
 14   SET  ANSI_NULLS, QUOTED_IDENTIFIER  ON 
 15   GO 
 16   CREATE   FUNCTION   [  dbo  ] .f_get_page( @page_num   BINARY ( 6  ))
  17   RETURNS   VARCHAR ( 11  )
  18   WITH   ENCRYPTION
  19   AS 
 20   BEGIN 
 21   RETURN ( CONVERT ( VARCHAR ( 2 ),( CONVERT ( INT , SUBSTRING ( @page_num , 6 , 1 )) *  POWER ( 2 , 8 )) + 
 22          ( CONVERT ( INT , SUBSTRING ( @page_num , 5 , 1 )))) +  '  :  '  + 
 23           CONVERT ( VARCHAR ( 11  ),
  24          ( CONVERT ( INT , SUBSTRING ( @page_num , 4 , 1 )) *  POWER ( 2 , 24 )) + 
 25          ( CONVERT ( INT , SUBSTRING ( @page_num , 3 , 1 )) *  POWER ( 2 , 16 )) + 
 26          ( CONVERT ( INT , SUBSTRING ( @page_num , 2 , 1 )) *  POWER ( 2 , 8 )) + 
 27          ( CONVERT ( INT , SUBSTRING ( @page_num , 1 , 1  )))))
  28   END 
 29   GO 
 30  
 31   SET  ANSI_NULLS, QUOTED_IDENTIFIER  ON 
 32   GO 
 33   CREATE   VIEW   aa
  34   WITH   ENCRYPTION
  35   AS 
 36   SELECT   *   FROM   [  dbo  ] . [  Users  ] 
 37   GO 
 38  
 39   SET  ANSI_NULLS, QUOTED_IDENTIFIER  ON 
 40   GO 
 41   CREATE   TRIGGER   cc
  42   ON   [  dbo  ] . [  Users  ] 
 43   WITH   ENCRYPTION
  44   FOR   INSERT 
 45   AS   RAISERROR ( 500001 , 16 , 10  )
  46   GO 
 47  
 48   SET  ANSI_NULLS, QUOTED_IDENTIFIER  ON 
 49   GO 
 50   Create   Procedure   creat_test_Encryption 
  51   with   encryption
  52   AS 
 53   SELECT   TOP   100   *   FROM   [  dbo  ] . [  test13  ] 
 54  
 55   GO  

而Decrypt in-place(alter objects)就是把 各种 对象 中的with encryption去掉,不知道f_get_page这个函数会失败

执行Decrypt in-place(alter objects)前

 1   SET  ANSI_NULLS, QUOTED_IDENTIFIER  ON 
 2   GO 
 3   ALTER   Procedure   creat_test_Encryption 
  4   with   encryption
  5   AS 
 6   SELECT   TOP   100   *   FROM   [  dbo  ] . [  test13  ] 
 7   GO  

执行执行Decrypt in-place(alter objects)后

 1   SET  ANSI_NULLS, QUOTED_IDENTIFIER  ON 
 2   GO 
 3   ALTER   Procedure   creat_test_Encryption 
  4   AS 
 5   SELECT   TOP   100   *   FROM   [  dbo  ] . [  test13  ] 
 6   GO  

你会看到执行Decrypt in-place(alter objects)后,相当于去掉了with encryption

除了那个用户定义函数之后其他的 解密 出来了,其实你可以drop掉那个函数,然后用 解密 出来的脚本重新创建函数就可以了

视图,触发器都没有锁小图标了

其他功能

Show DDL script就是把 对象 的创建脚本显示出来,而Decrypt in-place我就不说了

注意,下面的界面是在dbForge SQL Decryptor 工具 中的界面,不是在SSMS中的界面,虽然这个 工具 的界面跟SQL2012 的SSMS界面很像

总结

DBA有了这个 工具 之后,就不怕开发人员随意加密他们自己写的函数、存储过程、触发器了

也能减轻DBA的负担

如有不对的地方,欢迎大家拍砖o(∩_∩)o

查看更多关于批量解密SQLSERVER数据库中的各种对象的工具dbForgeSQLDecrypt的详细内容...

  阅读:42次