我在App.config中有一个连接字符串,如下所示:
<add name="connectionString"
connectionString="Data Source=SERVER;Initial Catalog=DB;Integrated Security=True;User ID=domain\username;Password=12345;Connection Timeout=300"
providerName="System.Data.SqlClient" />
然后我在代码后面调用字符串,如下所示:
string conSTR = System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
SqlDataReader reader;
using (SqlConnection sqlConn = new SqlConnection(conSTR))
using (SqlCommand cmd = new SqlCommand(SQLQuery, sqlConn))
{
sqlConn.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
.... stuff happens here
}
}
我的本地帐户无权访问服务器,但传入连接字符串的服务帐户有。
我得到的错误是:
Cannot open database "DB" requested by the login. The login failed.
Login failed for user 'domain\MyUserName'.
由于某种原因,它完全忽略了连接字符串中的用户名/密码,并尝试使用我的帐户进行连接。
我该如何解决?
答案 0 :(得分:4)
您已在连接字符串中集成security = true,请将其删除。
答案 1 :(得分:0)
那是因为您指定了Integrated Security=True;
。这会取代任何其他身份验证设置,将其删除,它将使用提供的用户名和密码。