2009-12-19 111 views
1

我在SQL Server方面相對缺乏經驗,但我試圖在其他人使用它編寫的Delphi應用程序中解決某些(與SQL Server相關的)邏輯和UI問題。目前試圖讓開發環境正常運作。疑難解答SQL Server連接問題

這裏的環境:

開發機:虛擬機(VMWare的)運行Windows XP,使用橋接網絡。可以連接到服務器機器上的文件夾/文件。我在這臺機器上安裝了舊版本的SQL Server 2005 Express。我可以使用SQL Server Management Studio Express,也可以通過我的Delphi組件(ADO,可以將表格數據讀取/寫入網格等)連接到它。

「服務器」(又名S1):其實只是一個Windows XP工作站。我把SQL Server 2008安裝在它上面。自安裝以來,我使用配置管理器爲SQLEXPRESS - >名稱管道和TCP/IP啓用了協議,並重新啓動了SQL Server服務。 SQL Server被設置爲使用Windows NT授權。這是我需要從Dev機器連接到的機器和SQL Server實例。

我可以使用Management Studio連接到同一臺機器上的S1 SQL Server實例,但我無法從Dev框連接到它,使用2005管理工作室(我甚至不知道應該如何可能有不同的版本)或Delphi組件字符串生成器(使用OLDEDB Provider for SQL Server的TADOConnection)。當我嘗試後者時,S1 SQL Server實例不會顯示在下拉列表中,如果我使用Windows NT Integrated Security或指定的用戶名和密碼手動輸入S1 \ SQLEXPRESS,則會出現以下錯誤:

--------------------------- 
Microsoft Data Link Error 
--------------------------- 
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied. 
--------------------------- 
OK 
--------------------------- 

這是一個點對點網絡;沒有域控制器等。兩臺機器上的用戶名和密碼是相同的。

我該如何解決這個問題?

============================================== ==
使用Andomar的指針和我在下面評論的鏈接(這解釋了表面區域配置工具在SQL Server 2008中消失了),我已經在S1機器的SQL Server Management Studio設置中看到了這一點,並將其設置爲如下,但仍然沒有非本地連接能力。我錯過了什麼?

SAC settings http://img192.imageshack.us/img192/8784/sacsettings.jpg

SAC Settings close up http://img38.imageshack.us/img38/457/sacsettings2.jpg

回答

2

您需要確保服務器本身正在偵聽遠程連接。這可以使用SQL Server表面配置區域工具完成。我只有2005年安裝,但從你張貼的屏幕截圖你正在錯誤的領域工作。您需要爲數據庫引擎啓用遠程連接。您發佈的媒體資源與該設置無關。您將可以選擇僅將其添加到TCP/IP或TCP/IP和命名管道。

此外,您需要確保SQL Browser service正在運行並且必要的端口已打開。默認情況下,SQL服務器將出現在隨機端口上。 SQL Server Browser服務在固定端口(1434)上啓動,並將信息返回給客戶端,以瞭解您正在查找的服務器在哪個端口上運行。

這是必要的,因爲您可以在一臺機器上運行多個SQL Server實例。

您可以設置SQL Server以偵聽特定的端口,然後將端口號包含在連接字符串中,繞過SQL Server Browser,但這需要更多的工作。

+0

對於其他人有這個問題,這個鏈接也證明有幫助: http:///www.symantec.com/connect/articles/install-and-configure-sql-server-2008-express – Jamo 2009-12-19 23:15:16

+0

這也是:http://www.datamasker.com/SSE2005_NetworkCfg.htm (重新啓動!) – Jamo 2009-12-20 00:58:33

1

默認情況下,SQL Server Express的只監聽本地主機上。

您可以使用SQL Server表面配置區域工具更改此設置。在啓動屏幕上,選擇「表面區域配置...」。在SQLEXPRESS實例下,打開「遠程連接」。確保選中「本地和遠程連接」。

+0

謝謝。這至少讓我朝着一個方向前進。看起來SAC在2008年不可用。我現在在這裏挖掘,嘗試找到正確的設置進行更改,並執行步驟/順序。目前還沒有成功,但仍在挖掘。 http://decipherinfosys.wordpress.com/2009/01/29/no-surface-area-configuration-tool-in-sql-server-2008/ – Jamo 2009-12-19 21:35:36

+0

它應該與SQLExpress一起安裝。即使SQLExpress本身沒有監聽遠程連接,它也可以遠程工作,所以如果你有它在另一臺服務器上運行,你可以將它指向你的SQLExpress服務器 – Andomar 2009-12-19 22:03:12

+0

看來,他們在2008版本中將它作爲單獨的工具刪除。有關最新更新,請參閱上文。 再次感謝您的幫助! – Jamo 2009-12-19 22:28:10