我们有一台运行 SQL 2008 R1 的服务器。我们在 DMZ 中有一个 Web 服务器,它通过防火墙连接到 SQL 服务器,并使用域用户帐户执行 SQL Reporting Services 报告。
在 SQL Server 上,事件日志一直在为该域用户审计失败的“帐户登录”事件(事件 ID 680,代码 0xC0000064)。但是,对于这些失败事件中的每一个,同一个域帐户都有一个成功的登录/注销事件(事件 ID 540)。需要注意的是,Account Logon 事件中的用户名指定为 UPN [email protected]),但 Logon/Logoff 事件中的用户名指定为 DOMAIN\Username。这些事件必须与 SSRS 相关,因为这是唯一应该使用相关帐户的连接。
此外,在监控我们的域控制器时,每次出现一个帐户登录事件时,域控制器的 CPU 使用率都会飙升至 80% 或更高。我不确定这两者是否相关。
在我的研究中,我所读到的所有内容都表明帐户登录事件是由域控制器在对用户进行身份验证时记录的。因此,我的问题是:
- 为什么我的 SQL 服务器记录帐户登录事件,如果它们应该是域控制器事件?
- 为什么在一个事件中指定了 UPN,而在另一个事件中指定了 DOMAIN\Username 格式?
- 我没有注意到我的应用程序有任何中断,因此失败的登录不会影响它。为什么会这样?
更新:
我们的 Intranet 上也运行着相同的 Web 应用程序。我只是注意到此应用程序不会导致生成这些相同的事件。当该应用程序连接到 SSRS 时,它会记录几个成功的登录/注销事件,但根本不会记录任何帐户登录事件。因此,这似乎与其他服务器位于 DMZ 中有关。我还注意到 Intranet 连接生成的事件将 Kerberos 显示为使用的身份验证方法。但是,从 DMZ 连接生成的成功登录/注销事件指示 NTLM。
域控制器上的 LmCompatibilityLevel 注册表值是多少?
如果使用 UPN 格式并且 LmCompatibilityLevel 条目的值等于或大于 3,则受信任用户的身份验证在基于 Windows Server 2003 的服务器上失败
http://support.microsoft.com/kb/947861
LmCompatibilityLevel
http://technet.microsoft.com/en-us/library/cc960646.aspx