如何防止SQL Server事件探查器跟踪?
1个回答
展开全部
2、调试Transact-SQL语句和存储过程。3、识别执行慢的查询。4、在工程开发阶段,通过单步执行语句测试SQL语句和存储过程,以确认代码按预期运行。5、通过捕捉生产系统中的事件并在测试系统中重播它们来解决SQL Server中的问题。这对测试和调试很有用,并使得用户可以不受干扰地继续使用生产系统。6、审核和复查在SQL Server实例中发生的活动。这使得安全管理员得以复查任何的审核事件,包括登录尝试的成功与失败,以及访问语句和对象的权限成功与失败。需要注意的是:运行SQL 事件探查器时,必须确保系统至少有10MB的可用空间,否则SQL 事件探查器的所有功能都将停止。我们可以看到这个SQL的事件探查器的确很强大,SQL Server里面的执行的每一个动作,都可以在SQL事件探查器里看的一清二楚,这对于性能调剂,后期维护等等都是有非常大的帮助的。但是,问题也就来了,在你的软件开发完毕后,作为软件的开发方而言并不希望使用软件的使用者通过SQL事件探查器来跟踪SQL语句。那么这种情况该怎么办呢?有没有什么办法不能让SQL事件探查器跟踪到呢?下面我们来探索这个问题:假设你数据库里面有一张表:Organization,里面有一个字段是password,那么当你执行下面的SQL语句的时候: SELECT [Password] FROM [Organization] 那么你会吃惊的发现,在SQL事件探查器里面显示如下内容:— 在该事件文本中找到“password”。— 出于安全原因,已用该注释替换此文本。这样,就看不到你执行的SQL语句的内容了。但是,你可以会说,如果在我的Organization里面没有password字段的话还不是要显示出来?确认如此,但是官方介绍说:只要在查询的过程中,任意地方出现关键词:password,encryption,sp_setapprole之一,整个查询过程都将被隐藏,任意地方,当然也包括注释中。例如执行下面的语句: --Password /*保护SQL语句*/ SELECT 1 FROM [Organization1] 同样的我们在SQl事件探查器里面看到的是: 总结:这样就很清楚的明白:如果要避免SQL语句在SQL事件探查器里面被跟踪的话,只需要添加一个关键词的注释就可以把SQL语句保护起来了。可喜的是,我开发的系统所依赖的第三方系统软件并没有对此SQL语句做保护,故可以通过SQL事件探查器分析软件对数据库进行了那些操作,进一步分析数据库表的结构。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询