批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor
批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11
之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便
昨天ahdung 童鞋介绍了这个工具给我,非常感谢他
dbForge SQL Decryptor这个工具的软件公司是devart,也是跟redgate公司一样,制作各种数据库辅助工具和编程工具的一家比较出名的软件公司
软件下载地址:
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的更多相关文章
- 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11
参考地址: http://www.cnblogs.com/lyhabc/p/3505677.html SQLPROMPT5.3对各种加密对象的解密测试 SQL2005解密已经被加密的存储过程 昨天ah ...
- 设置SQLServer数据库中某些表为只读的多种方法
原文:设置SQLServer数据库中某些表为只读的多种方法 翻译自:http://www.mssqltips.com/sqlservertip/2711/different-ways-to-make- ...
- SQLServer数据库中开启CDC导致事务日志空间被占满的原因
SQLServer数据库中开启CDC导致事务日志空间被占满的原因 转载 2017-04-01 投稿:mrr 我要评论 这篇文章主要介绍了SQLServer数据库中开启CDC导致事务日志空间 ...
- jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上 1.JavaBean的使用 package com.zheng; public class BookBean { ...
- PowerDesigner从SqlServer数据库中导入实体模型
PowerDesigner从SqlServer数据库中导入实体模型 时间 2013-06-28 10:26:34 CSDN博客 原文 http://blog.csdn.net/sxycxwb/art ...
- 获取sqlserver数据库中所有库、表、字段名的方法
获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...
- Oracle数据库中的重要对象
数据库中的重要对象:表.视图.序列.函数.存储过程.索引.同义词1.表:用PL/SQL Developer 软件打开 Scott的DEPT表查看SQL,可以看见DEPT表创建的脚本-- Create ...
- 【转载】Sqlserver数据库中无自增Id的情况下使用ROW_NUMBER()函数进行数据分页
在Sqlserver数据库中,如果查询表中含有自增长Id列,一般会采用select Top的方式来数据的分页操作.而实际上很多数据表设计的时候,不一定含有自增长Id列,那么数据库没有Id自增列的时候要 ...
- Sqlserver数据库中的临时表详解
临时表在Sqlserver数据库中,是非常重要的,下面就详细介绍SQL数据库中临时表的特点及其使用,仅供参考. 临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除.临时表有两种类 ...
随机推荐
- iOS系列 基础篇 01 构建HelloWorld,剖析并真机测试
iOS基础 01 构建HelloWorld,剖析并真机测试 前言: 从控制台输出HelloWorld是我们学习各种语言的第一步,也是我们人生中非常重要的一步. 多年之后,我希望我们仍能怀有学习上进的心 ...
- Hibernate 系列 07 - Hibernate中Java对象的三种状态
引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...
- python 发送邮件
# coding=utf-8 import smtplibfrom time import sleepfrom email.mime.text import MIMETextfrom email.mi ...
- 首页大图淡入淡出效果工具flexslider
网站首页放几张高清大图轮流播放展示是目首页设计的流行做法,虽然woothemes.com已经公布了比较成熟的flexslider工具,但本着造轮子的心态,我也做了一个自己的flexslider,当然我 ...
- Leetcode 99: Recovery binary search tree 总算明白了算法, 把代码写清楚, 让错误无处可藏.
想写点什么, 因为这道题花了我好几个小时, 在周日, 除了在球场上跑了二个小时, 就泡在这道题上面. read blogs: http://www.lifeincode.net/programming ...
- UNITY实现FLASH中的setTimeout
setTimeout是一个很方便的DELAY处理方法 if (this.startUpDelay > 0){ StartCoroutine(DelayedStart()); ...
- [bzoj3224][tyvj1728][普通平衡树] (pb_ds库自带红黑树)
Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相 ...
- POJ 2125 Destroying the Graph 二分图最小点权覆盖
Destroying The Graph Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8198 Accepted: 2 ...
- [LeetCode] Find All Numbers Disappeared in an Array 找出数组中所有消失的数字
Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...
- [LeetCode] Find K Pairs with Smallest Sums 找和最小的K对数字
You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. Define ...