说在前面
1 资料来源于网上
2 备份你的数据库
3 如果有问题,请问度娘
一 sql2000存储过程、触发器解密:
1 运行“sql2000存储过程解密.txt”
2 调用实例
exec sp_decrypt 'pbeforepdayresultnfla'
二sql2005-sql2008存储过程、触发器解密:
说明:
SQLServer2005里使用with encryption选项创建的存储过程仍然和sqlserver2000里一样,都是使用XOR进行了的加密。和2000不一样的是,在2005的系统表syscomments里已经查不到加密过的密文了。要查密文必须使用DAC(专用管理员连接)连接到数据库后,在系统表sys.sysobjvalues查询,该表的列imageval存储了相应的密文
详细步骤如下:
1 在服务器上右键——方面——外围应用配置器,将“remotedacenable”变为true,
如下图位置
图一:
图二:
上面这一步可用下面的脚本代替:
use master
exec sp_configure 'remote admin connections',0
go
RECONFIGURE
go
另外:
Adhocremotequeriesenabled:这个选项是启用分存式查询,这样我们就可以用脚本读取excel和txt里的数据,如下是两个读取excel和txt的简单例子
Exel:
/*
select distinct工号,姓名,dept_id,0,'正式员工' from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source=''C:\Documents and Settings\Jianglai\桌面\刷卡数据导入.Xls'';User ID=Admin;Password=;
Extended properties=''Excel 8.0;IMEX=1''')...sheet1$,deptcode
where 部门=t
*/
Txt:
/*
if object_id('tempdb..#k07temp')>0
drop table #k07temp
create table #k07temp
(
kcardate varchar(50))
declare @a varchar(100), @b varchar(100)
set @a= :文件名
select @a=replace(@a,'''','')
exec('bulk insert #k07temp from '+'''E:\舒特脚本读卡系统\DownBak\'+@a+'''')
*/
Xpcmdshellenabled:这个选项是允许在查询分析器里使cmd命令,如下是一个简单的例子
看数据库所有机器名
/*
exec master..xp_cmdshell 'ping -a localhost'
*/
2 配置工具——SQL SEVER配置管理器——SQL SEVE网络配置——SQL SERVER网络协议—Named Pipdes,启用
3用有sysadmin角(比如sa)的用户登陆SQL Server Management Studio(第一步如果已经做了就不用这一步了),在对应的数据库下运行“sql2005-sql2008存储过程解密”脚本
4 文件——新建——数据库引擎查询——服务器名器里输入“admin:服务器名\实例名”——选项,数据选择你要解密的存储过程所在的数据库,然后输入sa密码,点连接,如下图
图一:
图二:
图三:
5 调用格式如下
exec sql存储过程实例dbo.sp__windbi$decrypt 'tg_k19',0
exec dbo.sp__windbi$decrypt 'dbo.pMonthResult',0
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论