防止SQL SERVER的事件探查器跟踪程序中SQL脚本
如何防止程序中SQL脚本被SQL SERVER的事件探查器跟踪,保障自己的软件不被他人分析?
下面是一个停止所有SQLSERVER的跟踪器的脚本(两种方法的原理相同):
第一种方法:
procedure SQLCloseAllTrack;
const
sql = 'declare @TID integer ' +
'declare Trac Cursor For ' +
'SELECT Distinct Traceid from :: fn_trace_getinfo(default) ' +
'open Trac ' +
'Fetch Next from Trac into @TID ' +
'while @@fetch_status=0 ' +
'begin ' +
' exec sp_trace_setstatus @TID,0 ' +
' exec sp_trace_setstatus @TID,2 ' +
' Fetch Next from Trac into @TID ' +
'end ' +
'Close Trac ' +
'deallocate Trac';
begin
//停止所有SQLSERVER的跟踪器,以防止程序被別人跟踪
ExecSql(sql);
end;
第二种方法:
with faq1 do
begin
Close;
sql.Clear;
sql.add('declare @t_count int');
sql.add('set @t_count=1');
sql.add('while exists(SELECT * from ::::fn_trace_geteventinfo(@t_count))');
sql.add('begin');
sql.add('exec sp_trace_setstatus @t_count,0');
sql.add('set @t_count=@t_count+1');
sql.add('end');
try
execSQL;
except;
end;
close;sql.Clear;
end;
end;
相关文档:
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
productversion:产品版本(例如,10.0.1600.22)
productlevel:产品级别(例如,RTM)
edition:版本(例如, Enterprise(企业版)、Developer Edition(开发版))
SELECT @@VERSION
微软具体说明:
......
上一节讲述的是删除操作,本节将讲述如何直接执行sql语句。 直接执行sql语句是使用fromSql方法。 DbSession.Default.fromSql("select * from products").ToDataTable();
这样看起来亲切多了吧,直接sql就可以执行。
当然也可添加参数的啊。
DbSession.Default.fromSql("select * ......
一、
SQL SERVER
和
ACCESS
的数据导入导出
常规的数据导入导出:
使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:
1
在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation
2
Services(数据 ......
sqlserver的几个函数要记录
今日碰到个问题:要实现数据表中的一个字段中的文本为"xxx.gif"的转换为"xxx.jpg",我不知道其具体名称,只知道是以gif结尾。
问题解决:update pet set petPhoto=substring(petPhoto,1,datalength(petPhoto)-3)+'jpg' where petPhoto like '%.gif'
注意匹配符:“%& ......
CONVERT的使用方法:
格式:
CONVERT(data_type,expression[,style])
说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.
例子:
Select CONVERT(varchar(30),getdate(),101) now
结果为
now
......