SQL2000把存储过程加密了,怎么解开
可以导入,太大,就不要用记事本或者其它编辑器打开了,
查询分析器--连接数据库--文件--打开--.sql文件--F5执行
不过你把数据导出为SQL文件,而且200多M,真的是。
为何不压缩后,直接拷库文件,或者直接备份导出呢。
B. 如何用sql2000写存储过程的加密
事件探查器只能监视到数据直接调用的存储过程的名字,如果该存储过程内部还有调用别的存储过程,就监测不到了。例如create
proc
存储过程A
@p_参数
declare
C. sql存储过程怎么加密
语句后面加个WITH ENCRYPTION就好了,比如:
CREATEPROCEDUREdbo.AAA(
@AVARCHAR(60),
@BVARCHAR(200)OUTPUT)
WITHENCRYPTION
AS
BEGIN
--此处代码省略100行
END
D. SQLSERVER存储过程加密后,是不是任意版本都可以很容易解密
是的到目前为止,SQL Server所有版本的存储过程的加密的机理都是一样的,都可以被非常容易的破解,前提是,有读取存储过程的代码的权。
要防止用户得到SQL Server存储过程的真实代码,最简单的做法就是只给执行权,不给查看权。
至于安装在别人服务器上的SQL Server数据库中的存储过程,想不让别人看,那基本上是没门儿的。
E. sqlserver2000中自己编的存储过程能不能加密
1. >>加密
From the Books Online:
Use the WITH ENCRYPTION option:
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'encrypt_this' AND type = 'P')
DROP PROCEDURE encrypt_this
GO
USE pubs
GO
CREATE PROCEDURE encrypt_this
WITH ENCRYPTION
AS
SELECT *
FROM authors
GO
EXEC sp_helptext encrypt_this
2. 关键字 字节不受限制,比SQLexplorer安全,查看所有SYSCOMMENTS内加密的代码
create PROCEDURE sp_decrypt(@objectName varchar(50))
AS
begin
F. sql server2000 加密的存储过程 怎么导出
可以导入,太大,就不要用记事本或者其它编辑器打开了,
查询分析器--连接数据库--文件--打开--.sql文件--F5执行
不过你把数据导出为SQL文件,而且200多M,真的是。
为何不压缩后,直接拷库文件,或者直接备份导出呢。
如果查询分析器不能打开的话,没办法,去找台好点的机子来执行,OK后,把DBF和LOG文件拷过来就可以用了,
查询分析器--连接数据库--文件--打开--.sql文件--F5执行,,就是这个步骤了,还有什么详细的,打开查询分析器,连接你要导入的数据库,文件,打开,选择你那个200多M的SQL文件,F5执行,就OK了,,如果内存不足,想别的办法去别的机子或者别的办法,导成功后,把数据文件直接拷到你MSSQL下面的DATA里面就可以用了。
G. 怎样把MS SQL 2000用户存储过程设为只读
没有什么真正意义上的只读,你如果不想让别人修改呢的存储过程有2个方法
1.通过权限控制他不能修改数据库
2.在创建存储过程的时候用With Encryption加密
H. 求破解sql200加密存储过程的具体方法
破解SQL SERVER 加密存储过程,函数,触发器,视图
create PROCEDURE sp_decrypt(@objectName varchar(50))
AS
begin
set nocount on
--破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器
begin tran
declare @objectname1 varchar(100),@orgvarbin varbinary(8000)
declare @sql1 nvarchar(4000),@sql2 varchar(8000),@sql3 nvarchar(4000),@sql4 nvarchar(4000)
DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)
declare @i int,@status int,@type varchar(10),@parentid int
declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int
select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@ObjectName)
create table #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int)
insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments WHERE id = object_id(@objectName)
select @number=max(number) from #temp
set @k=0
while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
if @type=\'P\'
set @sql1=(case when @number>1 then \'ALTER PROCEDURE \'+ @objectName +\';\'+rtrim(@k)+\' WITH ENCRYPTION AS \'
else \'ALTER PROCEDURE \'+ @objectName+\' WITH ENCRYPTION AS \'
end)
if @type=\'TR\'
set @sql1=\'ALTER TRIGGER \'+@objectname+\' ON \'+OBJECT_NAME(@parentid)+\' WITH ENCRYPTION FOR INSERT AS PRINT 1 \'
if @type=\'FN\' or @type=\'TF\' or @type=\'IF\'
set @sql1=(case @type when \'TF\' then
\'ALTER FUNCTION \'+ @objectName+\'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end \'
when \'FN\' then
\'ALTER FUNCTION \'+ @objectName+\'(@a char(1)) returns char(1) with encryption as begin return @a end\'
when \'IF\' then
\'ALTER FUNCTION \'+ @objectName+\'(@a char(1)) returns table with encryption as return select @a as a\'
end)
if @type=\'V\'
set @sql1=\'ALTER VIEW \'+@objectname+\' WITH ENCRYPTION AS SELECT 1 as f\'
set @q=len(@sql1)
set @sql1=@sql1+REPLICATE(\'-\',4000-@q)
select @sql2=REPLICATE(\'-\',8000)
set @sql3=\'exec(@sql1\'
select @colid=max(colid) from #temp where number=@k
set @n=1
while @n<=CEILING(1.0*(@colid-1)/2) and len(@sQL3)<=3996
begin
set @sql3=@sql3+\'+@\'
set @n=@n+1
end
set @sql3=@sql3+\')\'
exec sp_executesql @sql3,N\'@Sql1 nvarchar(4000),@ varchar(8000)\',@sql1=@sql1,@=@sql2
end
set @k=@k+1
end
set @k=0
while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
select @colid=max(colid) from #temp where number=@k
set @n=1
while @n<=@colid
begin
select @OrigSpText1=ctext,@encrypted=encrypted,@status=status FROM #temp WHERE colid=@n and number=@k
SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectName) and colid=@n and number=@k)
if @n=1
begin
if @type=\'P\'
SET @OrigSpText2=(case when @number>1 then \'CREATE PROCEDURE \'+ @objectName +\';\'+rtrim(@k)+\' WITH ENCRYPTION AS \'
else \'CREATE PROCEDURE \'+ @objectName +\' WITH ENCRYPTION AS \'
end)
if @type=\'FN\' or @type=\'TF\' or @type=\'IF\'--刚才有错改一下
SET @OrigSpText2=(case @type when \'TF\' then
\'CREATE FUNCTION \'+ @objectName+\'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end \'
when \'FN\' then
\'CREATE FUNCTION \'+ @objectName+\'(@a char(1)) returns char(1) with encryption as begin return @a end\'
when \'IF\' then
\'CREATE FUNCTION \'+ @objectName+\'(@a char(1)) returns table with encryption as return select @a as a\'
end)
if @type=\'TR\'
set @OrigSpText2=\'CREATE TRIGGER \'+@objectname+\' ON \'+OBJECT_NAME(@parentid)+\' WITH ENCRYPTION FOR INSERT AS PRINT 1 \'
if @type=\'V\'
set @OrigSpText2=\'CREATE VIEW \'+@objectname+\' WITH ENCRYPTION AS SELECT 1 as f\'
set @q=4000-len(@OrigSpText2)
set @OrigSpText2=@OrigSpText2+REPLICATE(\'-\',@q)
end
else
begin
SET @OrigSpText2=REPLICATE(\'-\', 4000)
end
SET @i=1
SET @resultsp = replicate(N\'A\', (datalength(@OrigSpText1) / 2))
WHILE @i<=datalength(@OrigSpText1)/2
BEGIN
SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^
(UNICODE(substring(@OrigSpText2, @i, 1)) ^
UNICODE(substring(@OrigSpText3, @i, 1)))))
SET @i=@i+1
END
set @orgvarbin=cast(@OrigSpText1 as varbinary(8000))
set @resultsp=(case when @encrypted=1
then @resultsp
else convert(nvarchar(4000),case when @status&2=2 then uncompress(@orgvarbin) else @orgvarbin end)
end)
print @resultsp
set @n=@n+1
end
end
set @k=@k+1
end
drop table #temp
rollback tran
end
I. MSSQL中遇到存储过程加密出错不能查看
存储过程解密(破解函数,过程,触发器,视图.仅限于SQLSERVER2000)
--*/
/*--调用示例:
--解密指定存储过程
exec sp_decrypt '存储过程名'
--*/
create PROCEDURE sp_decrypt(@objectName varchar(50))
AS
begin
begin tran
declare @objectname1 varchar(100),@orgvarbin varbinary(8000)
declare @sql1 nvarchar(4000),@sql2 nvarchar(4000),@sql3 nvarchar(4000),@sql4 nvarchar(4000),@sql5 nvarchar(4000),@sql6 nvarchar(4000),@sql7 nvarchar(4000),@sql8 nvarchar(4000),@sql9 nvarchar(4000),@sql10 nvarchar(4000)
DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)
declare @i int,@status int,@type varchar(10),@parentid int
declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int
select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@ObjectName)
create table #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int)
insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments WHERE id = object_id(@objectName)
select @number=max(number) from #temp
set @k=0
while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
if @type='P'
set @sql1=(case when @number>1 then 'ALTER PROCEDURE '+ @objectName +';'+rtrim(@k)+' WITH ENCRYPTION AS '
else 'ALTER PROCEDURE '+ @objectName+' WITH ENCRYPTION AS '
end)
if @type='TR'
set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '
if @type='FN' or @type='TF' or @type='IF'
set @sql1=(case @type when 'TF' then
'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '
when 'FN' then
'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns char(1) with encryption as begin return @a end'
when 'IF' then
'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns table with encryption as return select @a as a'
end)
if @type='V'
set @sql1='ALTER VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 '
set @q=len(@sql1)
set @sql1=@sql1+REPLICATE('-',4000-@q)
select @sql2=REPLICATE('-',4000),@sql3=REPLICATE('-',4000),@sql4=REPLICATE('-',4000),@sql5=REPLICATE('-',4000),@sql6=REPLICATE('-',4000),@sql7=REPLICATE('-',4000),@sql8=REPLICATE('-',4000),@sql9=REPLICATE('-',4000),@sql10=REPLICATE('-',4000)
exec(@sql1+@sql2+@sql3+@sql4+@sql5+@sql6+@sql7+@sql8+@sql9+@sql10)
end
set @k=@k+1
end
set @k=0
while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
select @colid=max(colid) from #temp where number=@k
set @n=1
while @n<=@colid
begin
select @OrigSpText1=ctext,@encrypted=encrypted,@status=status FROM #temp WHERE colid=@n and number=@k
SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectName) and colid=@n and number=@k)
if @n=1
begin
if @type='P'
SET @OrigSpText2=(case when @number>1 then 'CREATE PROCEDURE '+ @objectName +';'+rtrim(@k)+' WITH ENCRYPTION AS '
else 'CREATE PROCEDURE '+ @objectName +' WITH ENCRYPTION AS '
end)
if @type='FN' or @type='TF' or @type='IF'--刚才有错改一下
SET @OrigSpText2=(case @type when 'TF' then
'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '
when 'FN' then
'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns char(1) with encryption as begin return @a end'
when 'IF' then
'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns table with encryption as return select @a as a'
end)
if @type='TR'
set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '
if @type='V'
set @OrigSpText2='CREATE VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 '
set @q=4000-len(@OrigSpText2)
set @OrigSpText2=@OrigSpText2+REPLICATE('-',@q)
end
else
begin
SET @OrigSpText2=REPLICATE('-', 4000)
end
--start counter
SET @i=1
--fill temporary variable
SET @resultsp = replicate(N'A', (datalength(@OrigSpText1) / 2))
--loop
WHILE @i<=datalength(@OrigSpText1)/2
BEGIN
SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^
(UNICODE(substring(@OrigSpText2, @i, 1)) ^
UNICODE(substring(@OrigSpText3, @i, 1)))))
SET @i=@i+1
END
set @orgvarbin=cast(@OrigSpText1 as varbinary(8000))
set @resultsp=(case when @encrypted=1
then @resultsp
else convert(nvarchar(4000),case when @status&2=2 then uncompress(@orgvarbin) else @orgvarbin end)
end)
print @resultsp
--execute( @resultsp)
set @n=@n+1
end
end
set @k=@k+1
end
drop table #temp
rollback tran
end
GO
J. 存储过程解密,sql server 2008 r2 一些存储过程被加密了,谁有解密工具
1.
sql
server
2008新功能
一、可信任的
sql
server
2008为关键任务应用程序提供了强大的安全特性、可靠性和可扩展性。
·
通过简单的数据加密、外键管理、增强审查来增强来扩展它的安全性。
·
通过改进了数据库镜像、热添加cpu简化管理并具高可靠性的应用的能力。
·
提供了一个广泛的功能集合,使你的数据平台上的所有工作负载的执行都是可扩展的和可预测的。
二、高效的
sql
server
2008降低了管理系统、.net架构和visual
studio®
team
system的时间和成本,使得开发人员可以开发强大的下一代数据库应
用程序。
·
sql
server
2008推出了陈述式管理架构(dmf)
,它是一个用于sql
server数据库引擎的新的基于策略的管理框架。
·
对sql
server的服务生命周期提供了显着的改进
,它重新设计了安装、建立和配置架构。
·
提供了集成的开发环境和更高级的数据提取。
·
在与visual
studio
的合作下,快速的创建偶尔连接系统。
·
提供了新的数据类型使得开发人员和管理员可以有效的存储和管理非结构化数据。
三、智能的
商业智能(bi)继续作为大多数公司投资的关键领域和对于公司所有层面的用户来说的一个无价的信息源。sql
server
2008提供了一个全面的平台,用于当用户需要时你可以为其提供智能化。
·
集成任何数据
·
发送相应的报表
·
使用户获得全面的洞察力
sql
server
2008基于sql
server
2005强大的olap能力,为所有用户提供了更快的查询速度。这个性能的提升使得公司可以执行具有许多维度和聚合的非常复杂的分析。
2随着sql
server
2008越来越多地进入到大家的视线中,也有越来越多的声音说sql
server
2008
(kaitmai)仅仅是sql
server
2005的一个补丁包。当初我也是这个想法,因为我们把太多的目光放到了例如geo-spatial支持、hierarchical
id、file
stream上,确实这些功能都是建立在sql
server
2005搭建的clr
-integrated平台上的,但是我们也需要看到sql
server
2008中的其他功能,例如resource
governor、declarative
management
framework、change
data
capture、reporting
service
iis
agnostic
report
deployment等等。steveb在美国launch中更将policy-base
management列在sql
server
2008
top
10新功能的首位,还有美国launch上关于activity
monitor的改进、object
search以及t-sql
debugger被用户爱称为三项surprise
features。当然还是会有人说这些都是在dmv和ddl
triggers的技术基础或技术路线上发展起来的,不过哪个产品不是从一条技术路线或某项基础性改革上发展起来的呢?
因此微软把sql
server
6.0/6.5称为第一代数据库产品,sql
server
7.0/2000称为第二代数据库,而sql
server
2005/2008称为第三代数据库产品。以此类推,那么sql
server
vnext是不是会变成第四代数据库产品呢,那又会有什么革命性的改变呢?grid?...哦,跑题了
因此我们还是应该宽容地看待sql
server
2008,还是应该升级到sql
server
2008的,升级有问题可以咨询emc
msp么.
3.完整的sql
2008企业版有2g吧