批量解密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的负担

批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor的更多相关文章

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

    参考地址: http://www.cnblogs.com/lyhabc/p/3505677.html SQLPROMPT5.3对各种加密对象的解密测试 SQL2005解密已经被加密的存储过程 昨天ah ...

  2. 设置SQLServer数据库中某些表为只读的多种方法

    原文:设置SQLServer数据库中某些表为只读的多种方法 翻译自:http://www.mssqltips.com/sqlservertip/2711/different-ways-to-make- ...

  3. SQLServer数据库中开启CDC导致事务日志空间被占满的原因

    SQLServer数据库中开启CDC导致事务日志空间被占满的原因 转载  2017-04-01   投稿:mrr    我要评论 这篇文章主要介绍了SQLServer数据库中开启CDC导致事务日志空间 ...

  4. jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上

    jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上 1.JavaBean的使用 package com.zheng; public class BookBean { ...

  5. PowerDesigner从SqlServer数据库中导入实体模型

    PowerDesigner从SqlServer数据库中导入实体模型 时间 2013-06-28 10:26:34 CSDN博客 原文  http://blog.csdn.net/sxycxwb/art ...

  6. 获取sqlserver数据库中所有库、表、字段名的方法

    获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...

  7. Oracle数据库中的重要对象

    数据库中的重要对象:表.视图.序列.函数.存储过程.索引.同义词1.表:用PL/SQL Developer 软件打开 Scott的DEPT表查看SQL,可以看见DEPT表创建的脚本-- Create ...

  8. 【转载】Sqlserver数据库中无自增Id的情况下使用ROW_NUMBER()函数进行数据分页

    在Sqlserver数据库中,如果查询表中含有自增长Id列,一般会采用select Top的方式来数据的分页操作.而实际上很多数据表设计的时候,不一定含有自增长Id列,那么数据库没有Id自增列的时候要 ...

  9. Sqlserver数据库中的临时表详解

    临时表在Sqlserver数据库中,是非常重要的,下面就详细介绍SQL数据库中临时表的特点及其使用,仅供参考. 临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除.临时表有两种类 ...

随机推荐

  1. SQL Server中删除重复数据

    delete from A ) )

  2. java中数据类型的转换

    数据类型的转换,分为自动转换和强制转换. 自动转换是程序执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换 强制转换必须在代码中声明,转换顺序不受限制 自动数据类 ...

  3. Linux 下dns的搭建

    1.软件安装: redhat默认使用bind作为安装软件 使用yum安装 yum install -y bind bind-chroot bind-utils bind提供主程序 bind-chroo ...

  4. tomcat安装后,本地可以访问,远程不能访问

    问题描述:tomcat安装后,在本地可以使用本地IP地址.localhost可以访问,但是在远程却不能访问. 使用工具:无. 解决方法:关闭服务器端的"公用网络防火墙"即可.

  5. 使用批处理文件在FTP服务器 上传下载文件

    1.从ftp服务器根目录文件夹下的文件到指定的文件夹下 格式:ftp -s:[配置文件] [ftp地址] 如:ftp -s:c:\vc\ftpconfig.txt   192.168.1.1 建立一个 ...

  6. Django 前后台的数据传递

    Django 从后台往前台传递数据时有多种方法可以实现. 最简单的后台是这样的: from django.shortcuts import render def main_page(request): ...

  7. monkey之monkey日志分析

    一.初步分析方法:Monkey测试出现错误后,一般的差错步骤为以下几步:1.找到是monkey里面的哪个地方出错2.查看Monkey里面出错前的一些事件动作,并手动执行该动作3.若以上步骤还不能找出, ...

  8. IT人士怎样的休息方式才高效

    为什么你睡了11个小时仍然觉得疲累? 为什么你花了好几万去岛国度假并没有增加生活的热情? 都说要去KTV,去夜店,去游乐园就能忘掉不快,更带劲地开始新的一天,但是尽兴归来心里只剩空虚? 我们真的明白休 ...

  9. 如何用fiddler对ios抓包

    fiddler端设置:(配置好重启fiddler) 1.首先下载安装fiddler,我安装的是fiddler4 2.Tools->Telerik Fiddler Options->HTTP ...

  10. python 高级之面向对象初级

    python 高级之面向对象初级 本节内容 类的创建 类的构造方法 面向对象之封装 面向对象之继承 面向对象之多态 面向对象之成员 property 1.类的创建 面向对象:对函数进行分类和封装,让开 ...