无法打开数据库错误

时间:2014-07-11 06:56:03

标签: c# sql-server ado.net console-application

我在控制台appliaction中有以下查询

 SqlConnection myConnection = new SqlConnection("user id=abc;" +
      "password=xyz;server=test;" +
      "Trusted_Connection=yes;" +
      "database=tested123; " +
      "connection timeout=30");
                myConnection.Open();

当我运行上面的应用程序时,它工作正常。但是当发布它时,它会为无法访问此数据库的其他用户抛出错误。为了避免这种情况,我创建了一个服务帐户“abc”并将其添加到所需的DB.But它仍然失败,出现以下错误。

  

System.Data.SqlClient.SqlException(0x80131904):无法打开数据库   登录请求“tested123”。登录失败。

用户登录失败>>正在运行此应用的用户。

如何为所有用户使用某个自定义帐户运行EXE?

4 个答案:

答案 0 :(得分:2)

我认为你必须删除这一行

Trusted_Connection=yes;

使用Windows凭据并且100%相当于:

Integrated Security=SSPI;

或者

Integrated Security=true;

如果您不想使用集成安全性/可信连接,则需要指定用户ID和密码

有关SQL数据提供程序的更多信息here

有关连接字符串here

的详细信息

正如您在MSDN中看到的那样

集成安全性 - 或 - Trusted_Connection

如果为false,则在连接中指定用户ID和密码。如果为true,则使用当前Windows帐户凭据进行身份验证。

答案 1 :(得分:0)

这是因为你的连接字符串中有Trusted Connection

这意味着您正在有效地使用Windows Auth,而不是字符串中的详细信息。删除它,你应该没问题。

通过使用Windows身份验证,您要求应用程序以运行它的用户身份建立连接。

答案 2 :(得分:0)

您可以访问网络http://www.connectionstrings.com/并查找特定数据库的连接字符串。

另一方面,这里有另一个类似的问题: SqlException: System.Data.SqlClient.SqlException (0x80131904)

答案 3 :(得分:0)

替换

Trusted_Connection=yes;

Integrated Security=false;

在连接字符串中。