我在控制台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?
答案 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;
在连接字符串中。