加入收藏 | 设为首页 | 会员中心 | 我要投稿 网站开发网_马鞍山站长网 (https://www.0555zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

SQL Server错误日志过滤(ERRORLOG)

发布时间:2016-04-22 08:25:21 所属栏目:教程 来源:网络整理
导读:一、背景 有一天我发现SQL Server服务器的错误日志中包括非常多关于sa用户的登陆错误信息:Login failed for user 'sa'. 原因: 评估密码时出错。[客户端: XX.XX
一、背景

有一天我发现SQL Server服务器的错误日志中包括非常多关于sa用户的登陆错误信息:“Login failed for user 'sa'. 原因: 评估密码时出错。[客户端: XX.XX.XX.XX]”。可是我很久之前就已经禁用了sa用户,怎么还会有那么多的sa用户登陆信息呢?我猜想是有人在暴力破解我们数据库的sa用户的密码;关于这种攻击,大家有没好的解决方案呢?

我查找了一些资料,暂时没有找到好的解决方案。我只想到一个暂时缓解压力的办法,那就是从错误信息中统计出登陆sa用户的客户端IP地址,再设置防火墙把这些IP过滤掉。

那现在如何解决IP的统计呢?使用SSMS是根本无法进行统计,因为错误日志的记录太多了。SSMS打开错误日志的方式如下图Figure1和Figure2所示;

SQL Server错误日志过滤(ERRORLOG)

(Figure1:SQL Server 日志)

SQL Server错误日志过滤(ERRORLOG)

(Figure2:sa登陆信息)

经过资料的查找,发现有两种方式可以对错误日志进行过滤:

1. 利用SQL Server系统存储过程xp_readerrorlog进行过滤;

2. 利用默认跟踪(Default Trace)进行过滤;

二、xp_readerrorlog实现错误日志过滤

(一) 关于错误日志的基本操作可以参考:SQL Server错误日志收缩(ERRORLOG)。首先了解错误日志文件的路径和大小,可以通过Figure3的方式找到文件,查看大小。

SQL Server错误日志过滤(ERRORLOG)

(Figure3:SQL Server ErrorLog文件信息)

除了Figure3直接找到错误日志的方式之外,我们还可以通过执行存储过程EXEC xp_enumerrorlogs返回表的形式进行查看信息,如Figure4所示。xp_enumerrorlogs存储过程还提供参数,默认值为1(如果没有提供参数表示传入的参数为1),2的时候表示查询SQL Server 代理错误日志列表,如Figure13所示。

--Script1:获取[SQL Server]错误日志列表
EXEC xp_enumerrorlogs
EXEC xp_enumerrorlogs 1

SQL Server错误日志过滤(ERRORLOG)

(Figure4:SQL Server 错误日志列表)

(编辑:网站开发网_马鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!