2014-07-11 173 views
1

我有以下查詢在我的控制檯appliaction無法打開數據庫錯誤

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

當我運行上面的應用程序,它工作正常。但當發佈此,它拋出一個錯誤的其他用戶誰無法訪問此數據庫。爲了避免這種情況,我創建了一個服務帳戶「abc」並將其添加到所需的數據庫中。但它仍然失敗,出現以下錯誤。

System.Data.SqlClient.SqlException(0x80131904):無法打開登錄請求的數據庫 「tested123」。登錄失敗。

用戶>>運行此應用程序的用戶登錄失敗。

如何使用一些自定義帳戶爲所有用戶運行EXE?

+0

我認爲你在這裏修復錯誤的錯誤..你應該修復一個拋出錯誤的用戶無需訪問 – Sayse

+0

我的問題是所有用戶應該運行一些自定義帳戶 – user3543884

+0

檢查防火牆.. –

回答

1

我想你應該刪除此行

Trusted_Connection=yes; 

使用Windows憑據,相當於100%:

Integrated Security=SSPI; 

或者

Integrated Security=true; 

如果你不想要使用集成安全/可信連接,您需要指定用戶標識和密碼

更多有關SQL here

更多的連接字符串here

正如你可以在MSDN

集成安全性 - 或 - Trusted_Connection看到

當假的,用戶.NET數據提供程序ID和密碼在連接中指定。如果爲true,則使用當前的Windows帳戶憑據進行身份驗證。

+0

感謝他的人工作中。但當我們在IIS中發佈我們的Web應用程序時,我有一個問題 ,我們在應用程序池設置中指定帳戶詳細信息,我們是否具有相同機制,用於代碼爲 – user3543884

+0

@ user3543884的硬編碼帳戶詳細信息的控制檯應用程序您可以使用app.config將連接字符串存儲在控制檯應用程序中。這可以幫助你提高靈活性 – Baximilian

0

這是因爲您的連接字符串中有Trusted Connection

這意味着您正在使用Windows身份驗證,而不是字符串中的詳細信息。刪除,你應該沒問題。

通過使用Windows身份驗證,您要求應用程序以運行它的用戶身份建立連接。

0

在連接字符串中替換

Trusted_Connection=yes; 

Integrated Security=false; 

相關問題