用户C#登录失败

时间:2015-08-13 12:05:43

标签: c# sql sql-server ado.net smo

protected DataTable GetData(string Query)
{
          DataTable data = new DataTable();
          try
          {
                strConnectionString = "data source=(local);Integrated Security=True;initial catalog=ps_erdb;";
                string Query = "Select ErdbBuildNumbereMinor from DBVersion";
                using (sqlConnection = new SqlConnection(strConnectionString))
                {
                    sqlConnection.Open();
                    SqlCommand cmd = sqlConnection.CreateCommand();
                    cmd.CommandTimeout = intConnectionTimeout;
                    cmd.CommandText = Query;
                    data.Load(cmd.ExecuteReader());
                    sqlConnection.Close();
                }
                return data;
            }
            catch (Exception ex)
            {
        }
        return data;
}

上面的代码返回错误

  

无法打开数据库" ps_erdb"登录请求。登录   失败。用户' MIG3-ESVTB \ HPSInstall'登录失败。

但是当我通过上面的登录手动打开SQL Server Management Studio时,我能够连接到数据库并执行查询。

1 个答案:

答案 0 :(得分:0)

有几种可能性:

  1. 您在本地客户端上登录的是哪些用户?你的联系 string表示您正在使用集成安全性,因此应用程序将使用 将当前登录的凭据提供给SQL Server。为了帮助诊断, 确保为失败的&成功 登录。当您从SSMS连接并运行SELECT suser_name()时,它返回什么?

  2. 数据库是否设置为multi_user模式(默认)或single_user 模式?有人可能已将其更改为single_user。这允许 第一个也只有一个连接。所有后续尝试都将失败。如果它处于单用户模式,只需从SSMS运行ALTER DATABASE ps_erdb SET MULTI_USER

  3. 当您通过SSMS登录时,您是否能够从中查询数据? ps_erdb数据库?如果没有,请确保已映射数据库用户 到'MIG3-ESVTB \ HPSInstall'登录以及授予用户的适当权限(不是登录)。