SQL Server'用户登录失败'未记录在错误日志中

时间:2011-01-20 20:06:26

标签: sql database sql-server-2008

以下异常将在以下内容中返回给我们的代码:

m_cnn = new SqlConnection();
m_cnn.ConnectionString = sxCnn;
m_cnn.Open();

---异常信息---

Exception: in OpenEx. 
Msg=OpenEx failed. 
Errors: Index #0
Message: Login failed for user 'xyz'.
LineNumber: 65536
Source: .Net SqlClient Data Provider
Procedure: 
Number: 18456
State: 1

我遇到的问题是我无法在SQL错误日志中找到此条目以查找状态。例如,我们今天上午11:43看到了这个例外,当我去日志时,那时没有条目。

为了启用此日志记录,我们需要做些什么吗?我们在Security |下的数据库属性中选择了'Failed logins only'选项登录审核。然而,我们没有看到这个问题。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

您的连接字符串可能有问题。它不应该是代码中的变量,应该在web.config中设置并从那里拉出来。这是我的web.config:

<connectionStrings>
    <add name="MyConnectionString" connectionString="Data Source=MYSQL1;Initial Catalog=MyDATABASE;User ID=dummyUser;Password=dummyPW" providerName="System.Data.SqlClient"/>
</connectionStrings>

这是我从代码中提取的:

mcnn.ConnectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

此外,如果您的连接字符串中存在拼写错误或丢失的内容,您甚至无法访问数据库以尝试登录.sql将无需记录任何内容。值得仔细检查^ _ ^

答案 1 :(得分:0)

登录失败的记录由AuditLevel设置控制。

答案 2 :(得分:0)

由于两个主要问题,发生了此问题:

  1. 我们网络上的一些开关很糟糕
  2. 我们正在对数据库进行大量并发连接
  3. 我们已修复1,问题数量大幅减少。我们正在重写从应用程序建立的连接(我在尝试实施修复时实际上问了另一个问题here