想要找到 SQL Server 2005 登录尝试反复失败的原因

想要找到 SQL Server 2005 登录尝试反复失败的原因

我注意到我们的 SQL 服务器反复出现登录失败的情况。每分钟都会发生相同的登录。日志文件查看器中的一个例子

2011 年 10 月 18 日 13:54:50,登录,未知,用户“LOLZOR\lolsqlserver”登录失败。[客户端:] 2011 年 10 月 18 日 13:54:50,登录,未知,错误:18456 严重性:14 状态:16

州 16意思是:登录有效,但没有权限使用目标数据库

请注意,凭据还用于启动所有 SQL Server 服务

Audit Login Failed
NTDomainName>LOLZOR
Error 18456
HostName EU_LOLWEB1
SPID">71</Column> 
SessionLoginName"LOLZOR\lolsqlserver
TextData">Login failed for user 'LOLZOR\lolsqlserver'
ClientProcessID"2364
NTUserName"lolsqlserver
ApplicationName">Queue Reader Main (distribution) 
StartTime">2011-10-18T12:18:21.72+02:00
ServerName">EU_LOLWEB1
DatabaseID">1</Column> 
LoginName">LOLZOR\lolsqlserver
DatabaseName">master
EventSequence">528
  • 你会注意到登录源自 SQL 服务器本身
  • 目标数据库似乎指向“Master”(见下文)
  • 如果我跟踪进程监视器中的 pid,我可以看到登录是由 qrdsvc.exe 执行的

描述

Description:    SQL Server Replication QueueReader Agent
Company:    Microsoft Corporation
Name:   qrdrsvc.exe
Version:    2005.90.4035.0
Path:   C:\Program Files\Microsoft SQL Server\90\COM\qrdrsvc.exe
Command Line:   "C:\Program Files\Microsoft SQL Server\90\COM\qrdrsvc.exe" -Distributor [EU_LOLWEB1] -DistributionDB [distribution] -DistributorSecurityMode 1  -Continuous -XJOBID 0xA368ED128C0EAA43A137B55FD4DD122F -XJOBNAME [[EU_LOLWEB1]].8] -XSTEPID 2 -XSUBSYSTEM Que
PID:    6096
Parent PID: 300
Session ID: 0
User:   LOLZOR\lolsqlserver
Auth ID:    00000000:a3d8bc8d
Architecture:   32-bit
Virtualized:    n/a
Integrity:  n/a
Started:    18/10/2011 11:43:25
Ended:  18/10/2011 11:43:25

据我了解http://www.eraofdata.com/blog/sql-18456-login-failures/ 是用户帐户对Master数据库没有足够的权限。

作为测试,我将 LOLZOR\lolsqlserver 添加到 sysadmin 角色并重新启动 SQL 服务。这并没有改变任何东西。该消息仍然每分钟弹出一次。

既然帐户正在运行服务,这怎么可能呢?我想解决这个问题,如果能得到帮助我将不胜感激。

答案1

我将尝试从以下几点来解决这个问题:

  1. 您的 SQL 代理 上是否存在任何不熟悉的作业?
  2. 您在服务器本身上是否有任何不熟悉的计划作业?

我只想排除第 1 项和第 2 项,现在让我们继续讨论第 3 项

您之前说过您已经设置了复制并且停止使用它,这让我认为您有一些导致复制尝试的设置的残留。

看一下这里这里- 这是存储所有复制设置的地方,也许您会发现有问题的配置。

关于第二个链接,在该实例的每个数据库上进行类似的简单查询可能会有所帮助。

SELECT * FROM sys.tables WHERE is_replicated = 1

我希望这可以为这个问题提供更多的启示,我将非常感激你能回复你收集到的详细信息。

谢谢,伊丹。

答案2

该服务应尝试连接到“分发”数据库。如果该数据库不可用(离线、已删除、当前正在恢复等),您可能会收到此错误。

如果您不再使用任何复制,只需禁用该服务,然后查找有关在不使用分发后清理 SQL 的常见问题。有类似的存储过程EXEC sp_helpdistributiondb可以告诉您有关当前设置的信息。该过程应该只在分发 SQL 服务器上运行……但您担心的服务也应该只在分发服务器上运行。如果它认为事情很糟糕,那么在您修复问题之前,该服务将永远无法正常工作。

如果一切就绪、配置正确,并且确实应该运行,请验证返回结果是否SELECT @@SERVERNAME与 SQL Server 的当前主机名相匹配。分发无法很好地处理其连接字符串中的别名、IP 地址等。

相关内容