当前位置:首页 » 编程语言 » 捕获应用软件中的sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

捕获应用软件中的sql

发布时间: 2022-08-03 11:16:58

❶ 怎么跟踪应用程序执行的sql语句

---跟踪
开始--程序--MS SQLSERVER
--事件探察器(SQL Profiler)
--文件
--新建--跟踪...
--设置要跟踪的服务器的信息(连接服务器)--确定
--设置跟踪的项目...
--然后数据库的调用情况就会显示出来

在跟踪项目设置中,如果不熟悉的话,一般用默认设置
筛选项目有几个可以注意一下:

1.DatabaseName 同于你要检测的数据库名
2.Error 同于错误,如果经常出现某个编号的错误,则针对此错误号
3.Seccess 同于0,失败,1,成功,如果是排错,就过滤掉成功的处理

❷ 如何获取一个应用软件的数据库,用sql语句查自己想要的表

你是要查看整个数据库吗吗?查询数据库的全部信息SQL语句:select * from数据库名。还有什么sql语句不知道,可以追问我。望采纳,谢谢!

❸ 如何防止sql注入攻击

1,避免将用户提供的输入直接放入SQL语句中,最好使用准备好的语句和参数化查询,这样更加安全。
2,不要将敏感数据保存在纯文本中,加密存储在数据库中的私有或机密数据,这样可以提供另一级保护,以防止攻击者成功地排出敏感数据。
3,将数据库用户的功能设置为最低要求,这将限制攻击者在设法获取访问权限时可以执行的操作。
4,避免直接向用户显示数据库错误,攻击者可以使用这些错误消息来获取有关数据库的信息。
5,对访问数据库的Web应用程序使用防火墙,这样可以为面向Web的应用程序提供保护,可以帮助识别SQL注入尝试;根据设置,还可以帮助防止SQL注入尝试到达应用程序。
6,定期测试与数据库交互的Web应用程序,这样做可以帮助捕获可能允许SQL注入的新错误或回归。
7,将数据库更新为最新的可用修补程序,这可以防止攻击者利用旧版本中存在的已知弱点或错误。

❹ 怎样获得应用程序所执行的SQL语句 (1)

我们在确定应用程序性能的时候,更多地会关注其中SQL语句的执行情况。通常应用的性能瓶颈会在数据库这边,因此数据库的sql语句是我们优化的重点。 要对sql语句进行优化,首先要知道应用程序执行了哪些SQL语句。下面我介绍三种方法来获得应用程序所执行的SQL语句。 方法一:如果你采用的数据库是oracle的话,那么可以利用oracle本身的10046事件跟踪SQL语句。步骤如下: 1、首先获得spid、sid、serial#,machine为你的机器名 SQL> select b.spid,a.sid,a.serial#, a.machine from v$session a,v$process b where a.paddr = b.addr and a.machine='yz'; SPID SID SERIAL# MACHINE 9497 49 3406 yz 2、利用10046事件开始跟踪 SQL>execute sys.dbms_system.set_ev(49, 3406,10046,1,''); PL/SQL procere successfully completed. 5、SQL trace 工具会收集这个过程中执行的SQL的性能状态数据,记录到一个跟踪文件中.这个跟踪文件提供了许多有用的信息,例如解析次数.执行次数,CPU使用时间等。 6、这时候你可以通过下面的语句获得产生的跟踪文件所在的目录: SQL> select value from v$parameter where name = 'user_mp_dest'; VALUE /opt/oracle/admin/ocn/ump 7、在/opt/oracle/admin/ocn/ump下找到yzoracle_ora_9497.trc。9497是你当前应用的spid。 8、注意yzoracle_ora_9497.trc是不可读的,我们需要执行oracle的tkprof命令,将yzoracle_ora_9497.trc转化为我们可读的文本文件。 tkprof yzoracle_ora_9497.trc yzoracle_ora_9497.sql 这样你就可以在yzoracle_ora_9497.sql文件中看到所有的sql语句执行次数,CPU使用时间等数据。

❺ 如何截获提交道SQLServer服务器上的SQL语句

打开
"开始"-"所有程序"-"Microsoft SQL Server"-"事件探查器"
打开程序之后点菜单栏的
"文件"-"新建"-"跟踪"
然后执行你要看SQL语句的程序.事件探查器就会把该时间段内所有执行的SQL语句列出来.

相关知识如下:
使用 SQL 事件探查器进行监视
SQL 事件探查器是图形工具,使系统管理员得以监视 Microsoft® SQL Server™ 实例中的事件。可以捕获有关每个事件的数据并将其保存到文件或 SQL Server 表中供以后分析。例如,可以对生产环境进行监视,了解执行速度太慢而妨碍性能的存储过程。

使用 SQL 事件探查器只监视感兴趣的事件。如果跟踪变得太大,可以基于需要的信息进行筛选,以便只收集事件数据的子集。监视太多事件类会增加服务器和监视进程的开销,并且可能导致跟踪文件或跟踪表变得很大,尤其是在进行长时间监视时。

在跟踪事件后,SQL 事件探查器允许重播在 SQL Server 实例上捕获的事件数据,因此可以如事件当初发生时一样有效地重新执行保存的事件。

使用 SQL 事件探查器可以:

监视 SQL Server 实例的性能。

调试 Transact-SQL 语句和存储过程。

识别执行慢的查询。

在工程开发阶段,通过单步执行语句测试 SQL 语句和存储过程,以确认代码按预期运行。

通过捕获生产系统中的事件并在测试系统中重播它们来解决 SQL Server 中的问题。这对测试和调试很有用,并使得用户可以不受干扰地继续使用生产系统。

审核和复查在 SQL Server 实例中发生的活动。这使得安全管理员得以复查任何审核事件,包括登录尝试的成功与失败,以及访问语句和对象的权限成功与失败。
SQL 事件探查器为用于监视 SQL Server 实例的一组存储过程提供图形用户界面。例如,可以创建您自己的应用程序,以便使用 SQL 事件探查器存储过程监视 SQL Server。

必须有至少 10 MB 的可用空间用以运行 SQL 事件探查器。当使用 SQL 事件探查器时,如果可用空间降至 10 MB 以下,SQL 事件探查器的所有功能都将停止。

SQL 事件探查器术语
若要使用 SQL 事件探查器,需要了解描述工具功能的术语。例如,创建模板来定义要收集的数据。通过在模板中所定义的事件上运行跟踪来收集这些数据。当运行跟踪时,描述事件数据的事件类和数据列显示在 SQL 事件探查器中。

模板
模板定义想要使用 SQL 事件探查器监视的每个事件的准则。例如,可以创建一个模板以指定使用哪些事件、数据列和筛选。然后可以保存该模板,并用当前的模板设置启动跟踪。捕获的跟踪数据基于模板中指定的选项。模板不执行且必须用 .tdf 扩展名保存到文件。

跟踪
跟踪基于选定的事件、数据列和筛选捕获数据。例如,可创建模板监视异常错误。为此,应选择跟踪 Exception 事件类以及 Error、State 和 Severity 数据列,这些都是为了使跟踪结果提供有意义的数据而需收集的。保存模板后,便可将其作为跟踪运行,并且可收集关于服务器中发生的任何 Exception 事件的数据。可保存此跟踪数据,然后稍后重播或立即用于分析。

筛选

当创建跟踪或模板时,可以定义筛选由事件收集的数据的准则。如果跟踪变得太大,可以基于想要的信息进行筛选,以便只收集事件数据的子集。如果没有设置筛选,跟踪输出中将返回选定事件类的所有事件。例如,可以将跟踪中的 Microsoft Windows® 2000 用户名限制为特定用户,以将输出数据减少到感兴趣的那些用户。
事件分类
事件分类定义事件的分组方法。例如,所有锁事件类都在锁事件分类内分组。但是,事件分类只存在于 SQL 事件探查器中。该术语不反映引擎事件的分组方法。

事件
事件是在 Microsoft® SQL Server™ 引擎中生成的操作。例如:

登录连接、失败和断开。

Transact-SQL SELECT、INSERT、UPDATE 和 DELETE 语句。

远程过程调用 (RPC) 批处理状态。

存储过程的开始或结束。

存储过程内的语句的开始或结束。

SQL 批处理的开始或结束。

写入 SQL Server 错误日志的错误。

在数据库对象上获取或释放的锁。

打开的游标。

安全权限检查。
由事件生成的所有数据显示在单个行中的跟踪内 。该行包含详细描述事件的数据列,称为事件类。

事件类
事件类是描述由服务器生成的事件的列。事件类确定收集的数据类型,因此并不是所有数据列都适用于所有事件类。事件类示例包括:

SQL:BatchCompleted,表示已完成 SQL 批处理。

运行客户端的计算机的名称。

受事件影响的对象 ID(如表名)。

发出语句的用户的 SQL Server 名称。

正在执行的 Transact-SQL 语句文本或存储过程文本。

事件开始和结束的时间。
数据列
数据列描述为跟踪内捕获的每个事件类所收集的数据。事件类确定收集的数据类型,因此并不是所有数据列都适用于所有事件类。例如,为 Lock:Acquired 事件类捕获 Binary Data 数据列时,该数据列包含锁定的页 ID 或行的值,但没有 Integer Data 事件类的值。对于所有事件类,默认数据列均为自动填充。

❻ sql server 怎么捕捉sql语句

如果在Transact-SQL中发生了错误,一般有两种捕捉错误的方法,一种是在客户端代码(如c#、delphi等)中使用类似try...catch的语句进行捕捉;另外一种就是在Transact-SQL中利用Transact-SQL本身提供的错误捕捉机制进行捕捉。如果是因为Transact-SQL语句的执行而产生的错误,如键值冲突,使用第一种和第二种方法都可以捕捉,但是如果是逻辑错误,使用客户端代码进行捕捉就不太方便。因此,本文就如何使用Transact-SQL进行错误捕捉进行了讨论。
非致命错误(non-fatal error)的捕捉
通过执行Transact-SQL而产生的错误可分为两种:致命错误(fatal error)和非致命错误(non-fatal error)。在Transact-SQL中只可以捕捉非致命错误(如键值冲突),而无法捕捉致命错误(如语法错误)。在Transact-SQL中可以通过系统变量@@ERROR判断最近执行的一条语句是否成功执行。如果发生了错误,@@Error的值大于0,否则值为0。下面举一个例子说明@@ERROR的使用。
假设有一个表table1,在这个表中有两个字段f1,f2。其中f1是主键。
INSERTINTOtable1VALUES(1,'aa')INSERTINTOtable1VALUES(1,'bb')--这条语句将产生一个错误IF@@ERROR0PRINT'键值冲突'当执行第二条语句时发生键值冲突错误,@@ERROR被赋为错误号2627,因此输出结果显示'键值冲突'。使用@@ERROR系统变量时需要注意,@@ERROR只记录最近一次执行的Transact-SQL语句所发生的错误,如果最近一次执行的Transact-SQL没有发生错误,@@ERROR的值为0。因此,只能在被捕捉的那条Transact-SQL语句后使用@@ERROR。
在SQL Server中,不仅可以捕捉系统提供的错误,还可以自定义错误。有两种方法可以定义错误信息。
1. 使用sp_addmessage系统存储过程添加错误信息,然后使用RAISERROR抛出错误。
sp_addmessage将错误号,错误级别、错误描述等信息添加到系统表中,然后使用RAISERROR根据相应的错误号抛出错误信息。用户自定义的信息应该从50001开始。EXECsp_addmessage@msgnum=50001,
@severity=16,@msgtext='sql encounter an error(%s).',@lang='us_english'EXECsp_addmessage@msgnum=50001,
@severity=16,@msgtext='sql遇到了一个错误(%1!).'如果使用的SQL Server版本是非英语版本,在添加本地错误信息时必须首先添加英文的错误信息。错误描述可以象c语言中的printf的格式字符串一样使用参数,如%s、%d。但要注意的是在英文版的错误信息中要使用%s、%d等形式,而在本地化的错误信息中要使用%1!、%2!等形式,在每个%?(1 <= ? <= n)后需要加一个!,而且%?的数目必须和英文版的错误信息的参数一致。
在未插入本地化错误信息时,RAISERROR将使用英文版的错误信息。当插入本地化错误信息时,RAISERROR使用本地化的错误信息。
RAISERROR(50001,16,1,'测试')
输出的结果:
服务器: 消息50001
,级别16
,状态1
,行1sql遇到了一个错误(测试).
其中'测试'字符串通过%1传入本地化的错误描述字符串中。
2. 直接使用RAISERROR将错误抛出。
使用第一种方法虽然使Transact-SQL语句看上去更整洁(这种方法类似于在编程语言中使用常量定义错误信息,然后在不同的地方通过错误编号引用这些错误信息。),但是这样做却使错误信息和数据库的耦合度增加,因为如果将这些带有RAISERROR的Transact-SQL放到别的SQL Server数据库上执行,由于在其它的数据库中还未添加错误信息,因此会产生RAISERROR调用错误,除非使用sp_addmessage将所需的错误信息再加入到其它的数据库中。
基于上述原因,RAISERROR不仅可以根据错误代码抛出错误信息,也可以直接通过错误描述格式字符串抛出错误信息。

❼ fiddler这款软件能不能捕获软件执行的sql语句,我好像看见有这样一款工具,当你点击一个按钮时能够捕获sql

Sql Server Profiler工具,安装SQL Server自带的有

❽ 如何获得应用程序所执行的SQL语句


sql2000 的话,有个 sql 事件查看器 的工具, 和查询分析器 一样,登录服务器以后会跟踪所有访问服务器的SQL语句,更改版本的SQL也有,名字换了个,忘了叫什么了