Login failed知多少
说起Login failed我们首先会想起密码错误,但密码错误只是众多login failed中的一个,本篇将罗列各类login failed在ERRORLOG中的表现,以及如何提取这类错误信息。
通过SQLServer身份验证连接数据库,先检查登录名是否存在,再验证密码是否正确,然后检查用户是否被禁用、是否被锁定、密码是否过期。
可以用下面语句,重现各种Login failed情况。
/**** 本地安全策略参考:http://www.cnblogs.com/Uest/p/4658399.html#secpol ****/
--解除锁定
ALTER
LOGIN Tear WITH PASSWORD = 'Tear' UNLOCK
--启用帐户
ALTER LOGIN Tear ENABLE
--过期帐户用正确的密码登录,运行完后,延长密码策略中的“密码最长使用期限”
EXEC MASTER..xp_cmdshell
'bcp "DBA_Monitor.dbo.IPbase" in F:\IPdata\IPbase.txt -S127.0.0.1,5377 -U"Tear" -P"Tear" -c -b2000'
--用错误的登录名
EXEC MASTER..xp_cmdshell
'bcp "DBA_Monitor.dbo.IPbase" in F:\IPdata\IPbase.txt -S127.0.0.1,5377 -U"Tear66" -P"Tear" -c -b2000'
GO 2
--登录名强制实施密码策略,且帐户锁定阈值>0,此时使用错误密码登录数据库,失败次数达到设定阈值就会lock account
EXEC MASTER..xp_cmdshell
'bcp "DBA_Monitor.dbo.IPbase" in F:\IPdata\IPbase.txt -S127.0.0.1,5377 -U"Tear" -P"Tear1" -c -b2000'
GO 6
--锁定情况下用正常密码
EXEC MASTER..xp_cmdshell
'bcp "DBA_Monitor.dbo.IPbase" in F:\IPdata\IPbase.txt -S127.0.0.1,5377 -U"Tear" -P"Tear" -c -b2000'
GO 5
--禁用帐户
ALTER LOGIN Tear DISABLE
--错误密码登录
EXEC MASTER..xp_cmdshell
'bcp "DBA_Monitor.dbo.IPbase" in F:\IPdata\IPbase.txt -S127.0.0.1,5377 -U"Tear" -P"Tear1" -c -b2000'
GO 4
--正确密码登录
EXEC MASTER..xp_cmdshell
'bcp "DBA_Monitor.dbo.IPbase" in F:\IPdata\IPbase.txt -S127.0.0.1,5377 -U"Tear" -P"Tear" -c -b2000'
GO 3
ERRORLOG错误日志中的信息如下
--密码过期
2014-08-13 21:22:41.370 登录 错误: 18487,严重性: 14,状态: 1。
2014-08-13 21:22:41.370 登录 Login failed for user 'Tear'. Reason: The password of the account has expired. [客户端: 127.0.0.1]
--错误的登录名
2014-08-13 21:23:57.630 登录 错误: 18456,严重性: 14,状态: 5。
2014-08-13 21:23:57.630 登录 Login failed for user 'Tear66'. 原因: 找不到与提供的名称匹配的登录名。 [客户端: 127.0.0.1]
2014-08-13 21:23:57.750 登录 错误: 18456,严重性: 14,状态: 5。
2014-08-13 21:23:57.750 登录 Login failed for user 'Tear66'. 原因: 找不到与提供的名称匹配的登录名。 [客户端: 127.0.0.1]
--错误的密码
2014-08-13 21:24:00.720 登录 错误: 18456,严重性: 14,状态: 8。
2014-08-13 21:24:00.720 登录 Login failed for user 'Tear'. 原因: 密码与所提供的登录名不匹配。 [客户端: 127.0.0.1]
2014-08-13 21:24:00.840 登录 错误: 18456,严重性: 14,状态: 8。
2014-08-13 21:24:00.840 登录 Login failed for user 'Tear'. 原因: 密码与所提供的登录名不匹配。 [客户端: 127.0.0.1]
2014-08-13 21:24:01.000 登录 错误: 18456,严重性: 14,状态: 8。
2014-08-13 21:24:01.000 登录 Login failed for user 'Tear'. 原因: 密码与所提供的登录名不匹配。 [客户端: 127.0.0.1]
2014-08-13 21:24:01.210 登录 错误: 18456,严重性: 14,状态: 8。
2014-08-13 21:24:01.210 登录 Login failed for user 'Tear'. 原因: 密码与所提供的登录名不匹配。 [客户端: 127.0.0.1]
2014-08-13 21:24:01.380 登录 错误: 18456,严重性: 14,状态: 8。
2014-08-13 21:24:01.380 登录 Login failed for user 'Tear'. 原因: 密码与所提供的登录名不匹配。 [客户端: 127.0.0.1]
2014-08-13 21:24:01.520 登录 错误: 18456,严重性: 14,状态: 8。
2014-08-13 21:24:01.520 登录 Login failed for user 'Tear'. 原因: 密码与所提供的登录名不匹配。 [客户端: 127.0.0.1]
--锁定情况下用正常密码
2014-08-13 21:24:04.920 登录 错误: 18486,严重性: 14,状态: 1。
2014-08-13 21:24:04.920 登录 Login failed for user 'Tear' because the account is currently locked out. The system administrator can unlock it. [客户端: 127.0.0.1]
2014-08-13 21:24:05.050 登录 错误: 18486,严重性: 14,状态: 1。
2014-08-13 21:24:05.050 登录 Login failed for user 'Tear' because the account is currently locked out. The system administrator can unlock it. [客户端: 127.0.0.1]
2014-08-13 21:24:05.330 登录 错误: 18486,严重性: 14,状态: 1。
2014-08-13 21:24:05.330 登录 Login failed for user 'Tear' because the account is currently locked out. The system administrator can unlock it. [客户端: 127.0.0.1]
2014-08-13 21:24:05.630 登录 错误: 18486,严重性: 14,状态: 1。
2014-08-13 21:24:05.630 登录 Login failed for user 'Tear' because the account is currently locked out. The system administrator can unlock it. [客户端: 127.0.0.1]
2014-08-13 21:24:05.840 登录 错误: 18486,严重性: 14,状态: 1。
2014-08-13 21:24:05.840 登录 Login failed for user 'Tear' because the account is currently locked out. The system administrator can unlock it. [客户端: 127.0.0.1]
--禁用帐户后用错误密码登录
2014-08-13 21:24:11.950 登录 错误: 18456,严重性: 14,状态: 7。
2014-08-13 21:24:11.950 登录 Login failed for user 'Tear'. 原因: 评估密码时出错。 [客户端: 127.0.0.1]
2014-08-13 21:24:12.300 登录 错误: 18456,严重性: 14,状态: 7。
2014-08-13 21:24:12.300 登录 Login failed for user 'Tear'. 原因: 评估密码时出错。 [客户端: 127.0.0.1]
2014-08-13 21:24:12.470 登录 错误: 18456,严重性: 14,状态: 7。
2014-08-13 21:24:12.470 登录 Login failed for user 'Tear'. 原因: 评估密码时出错。 [客户端: 127.0.0.1]
2014-08-13 21:24:12.600 登录 错误: 18456,严重性: 14,状态: 7。
2014-08-13 21:24:12.600 登录 Login failed for user 'Tear'. 原因: 评估密码时出错。 [客户端: 127.0.0.1]
--禁用帐户后用正确密码登录
2014-08-13 21:24:16.430 登录 错误: 18470,严重性: 14,状态: 1。
2014-08-13 21:24:16.430 登录 Login failed for user 'Tear'. Reason: The account is disabled. [客户端: 127.0.0.1]
2014-08-13 21:24:16.550 登录 错误: 18470,严重性: 14,状态: 1。
2014-08-13 21:24:16.550 登录 Login failed for user 'Tear'. Reason: The account is disabled. [客户端: 127.0.0.1]
2014-08-13 21:24:16.680 登录 错误: 18470,严重性: 14,状态: 1。
2014-08-13 21:24:16.680 登录 Login failed for user 'Tear'. Reason: The account is disabled. [客户端: 127.0.0.1]
--达到最大并发连接数
2014-08-13 21:26:19.660 登录 错误: 17809,严重性: 20,状态: 3。
2014-08-13 21:26:19.660 登录 Could not connect because the maximum number of '' user connections has already been reached. The system administrator can use sp_configure to increase the maximum value. The connection has been closed. [客户端: 127.0.0.1]
可以用下面语句筛选,并发送邮件提醒,可根据自己的需求,调整代码:
declare @startTime datetime
declare @endTime datetime
set @startTime = DATEADD(mi,-5,GETDATE())
set @endTime = GETDATE()
insert into Login_Errorlog
exec master.dbo.xp_ReadErrorLog 0, 1, N'Failed', N'login',@startTime,@endTime
insert into Login_Errorlog
exec master.dbo.xp_ReadErrorLog 0, 1, N'connections', N'to increase the maximum value',@startTime,@endTime select IDENTITY(INT ,1 ,1) Id,a.LoginName,a.Ip,a.Reason,count(a.LoginName) FailedCount
into #LoginsFailed
from (
SELECT substring(Text,charindex('''',Text)+1,charindex('''',Text,charindex('''',Text)+1)-charindex('''',Text)-1) LoginName
,ltrim(rtrim(substring(Text,charindex('''',Text,charindex('''',Text)+1)+2,charindex('[',text)-charindex('''',Text,charindex('''',Text)+1)-3))) Reason
,ltrim(rtrim(substring(Text,charindex('[',text),charindex(']',text)-charindex('[',text)+1))) Ip
FROM [dbo].[Login_Errorlog]
where LogDate>=dateadd(mi,-5,getdate())
and Text like 'Login%'
) a
group by a.LoginName,a.Ip,a.Reason
order by count(a.LoginName) desc select IDENTITY(INT ,1 ,1) Id,a.Ip,a.Reason,count(a.Ip) FailedCount
into #ConnectClosed
from (
SELECT substring(Text,1,charindex('.',Text)) Reason
,ltrim(rtrim(substring(Text,charindex('[',text),charindex(']',text)-charindex('[',text)+1))) Ip
FROM [dbo].[Login_Errorlog]
where LogDate>=dateadd(mi,-5,getdate())
and Text like '%connections%'
) a
group by a.Ip,a.Ip,a.Reason
order by count(a.Ip) desc DECLARE @html_tb VARCHAR(MAX) ,@html_tb1 VARCHAR(MAX)
,@Subject VARCHAR(50)
,@Recipients VARCHAR(200) SET @html_tb = ''
SET @html_tb1 = '' IF EXISTS(SELECT 1 FROM #LoginsFailed)
BEGIN
SET @html_tb =
N'<style>td{FONT-FAMILY: 宋体, Helvetica, sans-serif; FONT-SIZE: 12px; LINE-HEIGHT: 20px; TEXT-DECORATION: none;BORDER-BOTTOM: black 1px solid;BORDER-RIGHT: black 1px solid;}th{FONT-FAMILY: 宋体, Helvetica, sans-serif; FONT-SIZE: 12px; LINE-HEIGHT: 20px; TEXT-DECORATION: none;BORDER-BOTTOM: black 1px solid;BORDER-RIGHT: black 1px solid;}</style>
<H1>数据库登录失败检查(截至'+convert(varchar(16),GETDATE(),120)+')</H1>
<table width = "100%" border="0" cellspacing="0" cellpadding="0" style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-RIGHT: black 1px solid;BORDER-TOP: black 1px solid">
<tr><th>自增编号</th><th>登录名</th><th>登录IP</th><th>失败原因</th><th>失败次数</th>
</tr>' +
CAST(
(
SELECT td = Id
,''
,td = LoginName
,''
,td = Ip
,''
,td = Reason
,''
,td = FailedCount
,''
FROM #LoginsFailed
ORDER BY
Id
FOR XML PATH('tr')
) AS NVARCHAR(MAX)
) +
N'</table><br>'
END
IF EXISTS(SELECT 1 FROM #ConnectClosed)
BEGIN
SET @html_tb1 =
N'<style>td{FONT-FAMILY: 宋体, Helvetica, sans-serif; FONT-SIZE: 12px; LINE-HEIGHT: 20px; TEXT-DECORATION: none;BORDER-BOTTOM: black 1px solid;BORDER-RIGHT: black 1px solid;}th{FONT-FAMILY: 宋体, Helvetica, sans-serif; FONT-SIZE: 12px; LINE-HEIGHT: 20px; TEXT-DECORATION: none;BORDER-BOTTOM: black 1px solid;BORDER-RIGHT: black 1px solid;}</style>
<H1>数据库连接数超限检查(截至'+convert(varchar(16),GETDATE(),120)+')</H1>
<table width = "100%" border="0" cellspacing="0" cellpadding="0" style="BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-RIGHT: black 1px solid;BORDER-TOP: black 1px solid">
<tr><th>自增编号</th><th>登录IP</th><th>失败原因</th><th>失败次数</th>
</tr>' +
CAST(
(
SELECT td = Id
,''
,td = Ip
,''
,td = Reason
,''
,td = FailedCount
,''
FROM #ConnectClosed
ORDER BY
Id
FOR XML PATH('tr')
) AS NVARCHAR(MAX)
) +
N'</table><br>'
END
SET @html_tb = @html_tb+@html_tb1
IF @html_tb<>''
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Uest'
,@recipients = 'Uest@126.com'
,@body = @html_tb
,@subject = '数据库登录失败检查'
,@body_format = 'HTML' DROP TABLE #LoginsFailed
DROP TABLE #ConnectClosed
附上邮件提醒效果图:
Login failed知多少的更多相关文章
- SSAS:OLE DB 错误: OLE DB 或 ODBC 错误 : Login failed for user 'NT Service\MSSQLServerOLAPService'
问题描述 按照微软官方教程尝试使用SSAS做OLAP时,出现如下错误信息: Severity Code Description Project File Line Suppression State ...
- Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON
I create a very simple website.when I run website from VS2012 ,website easily can get data from SQLS ...
- Azure SQL Virtual Machine报Login failed for user 'NT Service\SqlIaaSExtension'. Reason: Could not find a login matching the name provided
在一台位于HK的Azure SQL Virtual Machine上修改排序规则,重建系统数据库后,监控发现大量的登录失败告警生成,如下所示: DESCRIPTION: Login failed f ...
- 500 OOPS: bad bool value in config file for: anon_world_readable_only Login failed.
[root@hyc ~]# ftp 192.168.254.5 Connected to 192.168.254.5 (192.168.254.5). Welcome to blah FTP serv ...
- "Login failed for user 'NT AUTHORITY\SYSTEM'. 原因: 无法打开明确指定的数据库。"异常处理
公司一台SQL Server服务器一直报 "Login failed for user 'NT AUTHORITY\SYSTEM'. 原因: 无法打开明确指定的数据库."错误,按网 ...
- Login failed for user 'IIS APPPOOL\ASP.NET v4.0'
Looks like it's failing trying to open a connection to SQL Server. You need to add a login to SQL Se ...
- [javamail]AUTH LOGIN failed;Invalid username or password报错
项目中需要用到javamailAPI,邮箱服务器用的sohu闪电邮,SMTP协议用来发送,赋值代码: Properties props = new Properties(); props.setPro ...
- SQL SERVER linked server Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
昨天创建了一个View, 这个view是一系列的表达式(CTE)组成,封装了好多的业务逻辑,简化下语句如下 ;with CTE AS( ...) SELECT a.company_id ,b.comp ...
- xxx while the managed IDbConnection interface was being used: Login failed for user xxx
Process cube的时候遇到如下错误. Errors in the high-level relational engine. The following exception occurre ...
随机推荐
- Radeon HD 7850 vs Radeon R9 270X
Radeon HD 7850 vs Radeon R9 270X HW compare Intro The Radeon HD 7850 comes with a GPU core speed ...
- Open vSwitch流表应用实战
本文参考:Open vSwitch流表应用实战 一个通过改变流表下发而实现的互相通信实验. 实验目的: 掌握Open vSwitch下发流表操作: 掌握添加.删除流表命令以及设备通信的原理. 原理:. ...
- Nginx 配置 Basic 认证
/* * 环境:LNMP(CentOS 6.6 + Nginx 1.8.0) */ 在 Nginx 下配置 Basic 认证需要依靠 Nginx 的 http_auth_basic_module 模块 ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [4] 首页 APP 接口开发方案 ③ 定时读取缓存方式
用于 linux 执行 crontab 命令生成缓存的文件 crop.php <?php //让crontab 定时执行的脚本程序 require_once 'db.php'; require_ ...
- Bootstrap页面布局13 - BS按钮
bootstrap中的按钮类 一般可以作为按钮的标签有:<a></a> <button></button> <input type='butt ...
- 使用 Linux 搭建 VPN
http://blog.csdn.net/catoop/article/details/7537012 VPN服务器的配置与应用 实验场景 通过将Linux配置VPN服务器允许远程计算机能够访问内网. ...
- wdate-year-month-week-gategory-amount-coin
---2016-12-02 19:46:39 the whole table DISTINCT field SUM(field) COUNT(field) --- 888983 rows OK SEL ...
- python 之 utf-8编码的秘密
python3的默认编码方案是utf-8编码,看了些资料,来做总结. 要说utf-8,就要说说unicode,要说unicode,就要说ASCII,我们还是慢慢来. 1.ASCII ASCII编码最初 ...
- delphi android 录像(调用Java的功能)
delphi xe系列自带的控件都无法保存录像,经网友帮忙,昨天终于实现了录像功能(但有个问题是录像时无画面显示),程序主要使用了JMediaRecorder,MediaRecorder的使用方法可参 ...
- BAT 遍历文件夹和子文件夹下所有文件
echo off & color 0A ::指定起始文件夹 set DIR="%cd%" echo DIR=%DIR% :: 参数 /R 表示需要遍历子文件夹,去掉表示不遍 ...