2014-09-12 142 views
0

我開發了一個ac#程序,我想用它從同一個域上的客戶端計算機訪問遠程服務器。每次嘗試連接到數據庫時,都會收到錯誤登錄失敗,用戶域\ myclientusername更正訪問遠程數據庫服務器的連接字符串

使用下面的連接字符串:

<add name="dbname" connectionString="Server=remoteservername;Database=dbname;Integrated Security=True;"/> 

我已經檢查和服務器設置爲允許遠程連接。我能夠使用管理員憑證登錄服務器嗎?我需要設置連接字符串以使用管理員密碼和用戶名連接到數據庫嗎?或者是否需要將我的客戶端配置文件憑據添加到數據庫權限。部署應用程序非常新穎。

+1

使用集成安全性=真,意味着他們使用相同的用戶名和密碼登錄到數據庫,就像他們登錄到計算機時一樣。這對每個人來說都是如此,或者只有你自己? – DidIReallyWriteThat 2014-09-12 14:00:14

+0

您的應用程序是桌面(WPF/Forms)還是Intranet/IIS應用程序? – Jedediah 2014-09-12 14:00:37

+0

而不是'Integrated Security = True;'嘗試'User Id = myUsername;密碼= myPassword;' – 2014-09-12 14:05:21

回答

0

您需要爲連接的用戶/客戶端PC設置對數據庫的訪問權限。你排序的域上的用戶「映射」到一個SQL用戶或組

轉到SQL管理工作室>連接到數據庫>擴展數據庫>展開「安全」,然後「登錄」

右鍵點擊登錄並選擇新的登錄。搜索連接用戶/客戶端PC的用戶。然後在「用戶映射」選項卡下,您可以訪問特定的數據庫。最好先給「db_owner」,以確保你有連接。在此之後,您應該只將訪問權限限制在需要的範圍內。

你可以隨時從SQL機器本身檢查SQL事件日誌,看看具體的認證問題可能是什麼。請轉至管理工具(位於控制面板中)中的「事件」,您可以看到特定於SQL的事件。

+1

感謝這工作。我保留了集成並將我的用戶配置文件添加到日誌中 – user2382789 2014-09-12 14:46:55

0

您可以刪除連接字符串中的Integrated Security=True,並將您在SQL Server數據庫中創建的登錄的用戶名和密碼插入連接字符串。

或者,您可以爲運行c#程序的用戶(您自己 - 用於測試,生產中的域服務帳戶)創建一個登錄到SQL Server,併爲其提供適當的讀/寫訪問權限。

連接字符串的詳細信息:http://msdn.microsoft.com/en-us/library/aa337562.aspx

0

當您設置Integrated Security=True,當前的Windows帳戶憑據用於驗證:如何在SQL Server中創建登錄http://www.connectionstrings.com

更多信息。 由於您嘗試的是與運行SQL實例的計算機不同的PC,因此很可能您嘗試連接的計數與註冊實例登錄的計數不同。 您可以執行的操作是: 使用Integrated Security=sspi並提供登錄憑據,如:

connectionString="Server=remoteservername;Database=dbname;User id= myUser; Password=myPass;Integrated Security=sspi"; 

您還可以設置Integrated Security=false,並且還提供憑據,(但連接不會使用Windows Athentication)

相關問題