ASP.NET And SQL Server 2005 Express遠端連線的方法

前言

  SQL Server 2005 Express版本(以上簡稱SSE),雖然是SQL Server 2005精簡版本,不過如果你的資料庫的使用需求簡單,且資料產生的量也不大,它是一個不錯的資料庫軟體,可以列入考慮。可能你會說,我可以直接使用MySQL之類資料庫軟體,嗯嗯,這也是一種不錯的方向,其實這都不是重點,重點是:「黑貓,白貓,會爬老鼠的就是好貓。」能解決你的問題就是好資料庫軟體,管它是使用Excel、Access、MySQL、Oracle、SQL Server…。當然,這隻黑貓、白貓其中還有需多要考慮的重點:效能、維護、資源、工具、文件、支援、服務…等多個面向考慮,最後選擇一個最符合你需求的資料庫軟體即可。

  我先說說我為何選擇SSE來做為我的資料庫,
  1. 因為它是免費。(與MySQL…相同)
  2. 我使用是Windows平台。
  3. 我使用的程式語言為Visual Basic。
  4. 我寫的是ASP.NET(*.aspx)網頁。
  5. 容易與開發工具整合與管理。

  除了第一點是比較沒有說服力之外,還有一點,因為是精簡版的關係,所以當然會有一些進階版本的功能是你無法使用的,但基本上MySQL是沒有這些限制的。但我在開發*.aspx時,使用SQL Server是非常方便的,Microsoft提供的工具(Visual Studio…)可以很方便與SQL Server做整合、管理…等等的工作。

SSE的限制
  • CPU數目:1
  • 記憶體上限:1 GB
  • 64位元支援:Windows on Windows (WOW)
  • 資料庫大小:4 GB

  SQL Server 2005各版本的差異,可以參考這裡
  其中比較要注意的是「資料庫大小」這一個項目,Express版本的4 GB限制是指「單一個DataBase檔案」,如我們常當成範例的Northwind(北風資料庫),在Express版本中的資料庫大小會有4 GB的限制,所以你可以多開幾個資料庫檔案來運用而避開這項限制。

  限制歸限制,但MS還是提供了一些額外的Express工具讓使用者來擴充SSE的功能,包括:
  1. Microsoft SQL Server 2005 Express Edition with Advanced Services Service Pack 2
  2. Microsoft SQL Server 2005 Express Edition Toolkit Service Pack 2
  3. Microsoft SQL Server Management Studio Express Service Pack 2 (SSMSE)
  • Advanced Services
    包含SSMSE、支援全文檢索目錄(FullTextSearch)、支援經由報表服務(Report Service)來檢視報表。
  • Toolkit Service
    提供了額外的工具與資源來管理SQL Server 2005 Express版本,它也支援經由報表服務建立報表,包含工具:
    • Connectivity Components
    • Business Intelligence Development Studio
    • Software Development Kit
    • Management Studio Express
  • SQL Server Management Studio
    這個工具是用來管理SQL Server 2005 Express版本的資料庫。
  目前SQL Server 2008已經快要發行了,有興趣的可到微軟網站查看資訊。

註:如果你的網站只是存放「文字型資料」,基本上4 GB應該可以讓你使用一段很久的時間,我前陣子看一篇「數位之牆的十一年浩劫」的文章,當然,這篇文章讓我們從事資訊工作的人有所警惕,其中提到,一個經營11年的網站備份出來的資料檔大小不過40MB左右,而我所服務的公司,經營一個討論區約有1萬1千篇文章,資料檔大小也才13.5MB左右。如果再利用我上述提到的「多開幾個資料庫檔案」的技巧,這個SSE版本的資料庫,應該是相當實用。
實作環境

  我只有一台主機,所以我使用VMWare來架設第二台主機,當成DataBase Server。

  Host1
  • OS:Windows XP Professional SP3
  • Name:Bruce
  • IP:192.168.254.100/24
  • 這台XP主機主要是模擬成Server,主要是架設成.NET Framework 3.5的環境加上SSMSE,模擬連線到遠端SQL主機。

  Host2
  • OS:VMWare Server ConSole 1.0.6 for Windows XP Professional XP3
  • Name:VMBruce
  • IP:192.168.254.103/24
  • 主要安裝SSE,當成DataBase Server,我還會教大家做簡單的防火牆設定,以防SQL 1433 port的攻擊。
事前準備
  1. .NET Framework 3.5環境
    Microsoft .NET Framework 3.5Microsoft .NET Framework 3.5 語言套件,下載後安裝在主機Bruce。

    • 2008年08月已更新到3.5 Service Pack 1,可以直接下載後安就,Microsoft .NET Framework 3.5 Service pack 1
    • 如果電腦是第一次安裝.NET Framework,直接下載3.5 sp1套件安裝,它會幫你把2.0、3.0、3.5全部安裝起來。

  2. SQL Server 2005 Express資料庫軟體
    Microsoft SQL Server 2005 Express Edition Service Pack 2
    ,下載後安裝在主機VMBruce。

    註:如果你如我一樣有在開發*.aspx或其他.NET程式,那你也可以到 Visual Studio 2008 Express Editions,在畫面中選擇你需要的語言工具(例如最下方:Offline Install-->Chinese (Traditional)-->Download),即可下載ISO檔,然後使用DVD燒出來後安裝Visual Studio 2008 Express工具,會自動安裝以上1、2所有軟體。


  3. SSE管理工具(SSMSE,資料庫管理工具)
    Microsoft SQL Server Management Studio Express Service Pack 2
    ,下載後安裝在主機Bruce、VMBruce。注意,VMBruce安裝SSMSE前,最少要先行安裝.NET Framework 2.0相關套件。

  4. SQL Server 2005 線上叢書
    SQL Server 2005 線上叢書 (2007 年 9 月)
    ,這是完整的一本技術手冊,你在坊間買書,可能查不到的資料這裡面都有,如果你有心想了解及發揮SQL Server的實力,這一定要下載安裝來看。關於SQL Server,有問題,有不了解,或是在看書,做實例不清楚…反正先查它就對了。
關係圖

Bruce (Web Server, SSMSE)  <------>  VMBruce (SSE, SSMSE)

  VMBruce這台主機就是單純的一台DataBase Server,我們在VMBruce必須先使用SSMSE工具先做本機連接測試,然後做一些設定的修改,讓VMBruce這台主機開放遠端連線的權限。在來透過Bruce主機的SSMSE工具來實作遠端連線到VMBruce的資料庫來進行管理的工作。再進一步透過Bruce主機寫一個*.aspx的ADO.NET程式透過網頁來進行遠端的資料庫連接及存取的動作。

  如果你看買過很多動態網頁程式教學的書籍(我就是!@.@),你會發現所有的書籍都只會教你在本機架設一個網站,不管是IIS+ASP、IIS+ASP.NET、IIS+PHP、Apache+PHP+MySQL…,最後你只會在本機寫程式,做管理,然後再上傳到一台Web與DataBase在同一台Server上,但實務上會建議把Web的主機與Database的主機是分開在不同主機及網路上,這樣的架構可以很彈性的架設出一個較大型的網路應用服務(當然這還是跟需求有關:效能、錢錢、使用情況…)。

服務名稱及驗證模式

  在開始前最後一件事,要提醒大家「服務名稱」及「驗證模式」這件事。你可以在同一部電腦中安裝多次的SQL Server引擎,而每次安裝稱為一個執行個體(instance),每個執行個體都有一個名稱來辨別,如果你是使用Visual Studio Express相關工具安裝SSE,那預設資料庫執行個體的名稱為「SQLEXPRESS」(你在執行工具或撰寫程式時,大小寫都可以)而且驗證模式預設為「Windows驗證模式」,且只充許本機的連線,如果要充許遠端連線還需要額外的設定。如果你是獨立安裝SSE,則系統在安裝時會讓你選擇驗證模式,你可以選擇「Mixed Mode, 混合模式」會比較有彈性,如此便能讓別的主機來連線或管理。

  在連線到資料庫時,在SSMSE的「伺服器名稱」或ADO.NET的「Data Source」你會發現格式為:「主機名稱\資料庫服務名稱」,例如:「VMBruce\SQLExpress」,如果是在同一台電腦主機,則主機名稱可用「.」來代替,例:「.\SQLExpress」,如果是使用遠端連線則主機名稱則使用IP Address來代替,例:「192.168.254.103\SQLExpress」。

  • Windows驗證模式
    Windows驗證接受使用者在登入Windows時獲得驗證,然後再傳送安全性憑證給SSE。而使用者的帳號和密碼只保留在Windows中。當ASP.NET使用Windows驗證時,連接字串不會提供帳號及密碼,只提供使用Windows驗證的指示。適合本機連接使用。

  • SQL驗證模式
    SQL驗證使用儲存在SQL Server中的資料來做使用者驗證。在連接時需提供「使用者名稱」及「密碼」來進行驗證。適合遠端連線使用。

  • 混合模式
    可以自行選擇使用Windows驗證或SQL驗證。
  記得,驗證連接的工作不是使用者,最常使用驗證工作的是ASP.NET等應用程式,User <-- *.aspx --> ADO.NET --> Database,這樣的流程看的懂嗎?驗證的工作作用在ADO.NET那一段,它會與DataBbase驗證溝通以取得存取的權限,如果是本機連線可選擇Windows驗證模式,如果是遠端連線就選擇SQL驗證模式。

獨立安裝SSE

  如果你是獨立安裝SQL Server 2005 Express資料庫,在安裝時有幾點要注意的地方。
  • SSE_執行個體.png「具名執行個體」的地方可以修改成任何你想要的名稱,其實這個執行個體名稱我是建議可以修改,如果有莫名的人要求連接時除了IP Address外,他也要完全猜對這個執行個體名稱,才有辨法連接,可以提升一些安全層級,我們測試上就使用預設SQLExpress即可,如果是正式對外的伺服器,還是修改一下的好。
  • SSE_帳戶服務_啟動SQLBrowser.png在下方有兩項安裝完成時要啟動的服務,預設只有SQL Server,如果你要開放遠端連接那請再勾選「SQL Browser」選項。(也可事後需要時再啟動)
  • SSE_驗證模式.png驗證模式,如上所述,只有本機連線就使用Windows驗證,如果開放遠端連線,那就選擇混合模式;在設定為混合模式時強制要設定sa的密碼,而且必須是「強密碼」。(也可事後需要時再修改驗證模式)
  如果是使用Visual Studio 2008 Express來安裝,就是一切採用預設值,如果有需求事後在使用SSMSE等工具來修改即可。

遠端連線一:使用SSMSE連接

  這裡我們預設你使用VS2008安裝起來的環境,我們先從測試本機連線,然後修改設定讓SSE開放遠端連線的權限。(這裡為了測試方便,先關閉VMWare中XP的防火牆)

  先到VMBruce這台主機:
  • 開始 --> 所有程式 --> Microsoft SQL Server 2005 --> SQL Server Management Studio Express --> 出現「連接到伺服器」,「伺服器名稱」因為我們是本機連接,所以預設值是「.\SQLEXPRESS」,「驗證」因為我們還沒修改設定,所以只能以「Windows驗證」來連接,按下「連接」來連接到本機執行個體名稱為SQLEXPRESS的資料庫。
  • SSMSE_Connection_連接到伺服器如果畫面上沒有出現錯誤訊息,而且可以看到以下畫面,那就代表本機連接成功。
  • SSMSE_連接成功再來我們要修改設定讓SSE可以支援遠端連線,點選最上層有綠色三角形的地方 --> 右鍵 --> 屬性 --> 安全性 --> 選擇「SQL Server 及 Windows 驗證模式」。
  • SSMSE_SQL Server及windows設定驗證模式確認sa的相關設定:由最上層 .\SQLEXPRESS --> 安全性 --> 登入 --> sa --> 右鍵 --> 屬性 --> 一般:請一定一定要設定一個「強壯的密碼」
      --> 狀態 --> 登入:請選擇「已停用」,表示這個sa使用者不能由遠端登入。sa使用者的圖形會多一個紅色向下的箭頭。

  • 建立一個可遠端連線的使用者:在sa上層的「登入」點選 --> 右鍵 --> 點擊「新增登入」。
    1、我們建立一個「kkbruce」的使用者,選擇「SQL Server驗證」,密碼是「12345」,注意,我們是為了測試方便去除下方的「強制執行密碼原則」,正常情況下最少請保留這個勾選。
    2、「伺服器角色」請在加勾選「sysadmin」。
    3、「使用者對應」是選擇這個使用者登入後可使用的資料庫。
    4、「狀態」請確認「連接到Database Engine的權限:授於」與「登入:已啟用」。最後按下「確定」新增完成。可先離開本機SSMSE管理工具。
SSMSE_建立遠端連線使用者
  • 開始 --> 所有程式 --> Microsoft SQL Server 2005 --> 組態工具 --> SQL Server介面區組態
  • SS2005_SQL Server介面區組態點擊下方「服務和連接的介區組態」
    1、SQLEXPRESS --> Data Engine --> 服務 --> 服務狀態:正在執行。(基本上如果你有做任何修改設定的動作,請來這裡按下方的「停止」再按「啟動」,讓SSE可以重新讀取新的設定。也可在「組態管理員」中設定,下一節介紹。)
    2、SQLEXPRESS --> Data Engine --> 遠端連接 --> 請選擇「本機和遠端連接:只使用TCP/IP」。
    3、SQL Server Browser --> 服務 --> 預設是「停止」,請點擊「啟動」。
    設定完成,可離開SQL Server介面區組態。

  • 開始 --> 所有程式 --> Microsoft SQL Server 2005 --> 組態工具 --> SQL Server 組態管理員,你可以在組態管理員中直接對相關服務進行「重新啟動」等相關動作。
  • SS2005_組態管理員接下來我們要設定最重要的TCP/IP
  • SS2005_網路組態_TCP/IP請先確認「SQL Server 網路組態 --> SQLEXPRESS通訊協定 --> 右方的「TCP/IP:已啟用」然後在TCP/IP上按右鍵 --> 內容 --> 選擇「IP位址」,重點在那個「IPALL」的選項中,請先刪除「TCP動態通訊埠」中的值,然後在「TCP通訊埠」中鍵入:「1433」。
  • 完成後,回到「SQL Server 2005 服務」中「重新啟動」兩項服務。
  設定完VMBruce後,我們回到Bruce這台主機,打開SSMSE,然後鍵入相關資訊:

Local_SSMSE_輸入遠端連線資訊  按下「連接」:

Local_SSMSE_連接成功  是否有看到原本主機名稱的地方現在出現的是「遠端主機IP Address」,代表遠端連接成功。

遠端連線二:使用ASP.NET For ADO.NET連接
  
  在Bruce這台主機執行以下步驟:
  • 開啟Visual Web Developer 2008 Express開發工具
  • 檔案 --> 新網站 --> ASP.NET網站 --> 檔案系統 --> D:\WebSite1\ (路徑可自訂)--> 確定
  • 在點選右方的「資料庫總管」--> 資料連接 --> 右鍵 --> 加入資料連接
  • VWD_Select_DataSource_Microsoft SQL Server選擇「Microsoft SQL Server」,按「繼續」後,鍵入相關資訊;
  • VWD_加入連接_輸入遠端連接資訊鍵入後,1、記得勾選「儲存我的密碼」。2、可先按下方的「測試連接」,如沒問題,再選擇「選取或輸入資料庫名稱」,點選一下,系統會自己幫你代出可連接得資料庫名稱。最後按下確定,完成連接。
  接下來的*.aspx實作就換你接手了,基本的connectionString會像這樣:
connectionString="Data Source=192.168.254.103\SQLEXPRESS;Initial Catalog=Northwind;User ID=kkbruce;Password=12345"
  基本上這個connectionString是不安全的,因為這個字串內的資料是完全明碼的存在於Web.conf或*.aspx之中,應該在本機測試完成後,上傳到實際運作的伺服器後實行"加密"的步驟。不過"加密"離遠端連線主題太遠了,有空再聊。

防止1433 port攻擊

  我們使用MS內建Windows 防火牆(Windows Firewall/Internet Connection Sharing (ICS))來防止SQL Server 1433 port的攻擊。為什麼會有1433 Port的攻擊呢?在早期的SQL Server中有一個不需密碼的使用者"sa",而這個使用者又偏偏在SQL Server有極大的權利,可以呼風喚雨,而我們這些SQL Server安裝後設定的預設服務Port就是1433,而駭客們就是使用"人性=懶=惰性"的漏洞,許多的資料庫系統安裝人員很習慣性的「下一步」「下一步」,而建立了許多的「預設型」SQL Server,駭客們就先Scan你的網路是否有開啟1433 port,有的話,接著他會試著使用sa這個使用者來連接,因為不用密碼,然後就BingGo!或是你有設定密碼,駭客們也是可以慢慢猜,讓你防不勝防。所以灌好SQL Server的第一步就是幫sa這個使用者設定一個「非常強壯密碼」來進行保護的第一步。

  不管你是使用硬體或軟體的防火牆,基本的方向是一樣的,因為SQL Server不是讓使用者來存取的,而是讓ASP.NET等應用程式來存取,ASP.NET等應用程式的主機是少數,所以我們這台SQL Server應該限制只讓特定主機來存取1433 port,其他一律設定為拒絕(Deny)動作。

  步驟一:切換到VMBruce主機

  開始 --> 控制台 --> Windows 防火牆 --> 確定「開啟」 --> 選擇「例外」

Windows-Firewall-例外設定

  --> 點選「新增程式」 --> 尋找程式「C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe」

Windows-Firewall-例外設定-加入sqlservr.exe
  --> 變更領域 --> 自訂清單

Windows-Firewall-例外設定-變更領域  在自訂清單內加入開放連接的主機IP Address(簡言之就是這個IP Address是你所信任的),例如輸入:192.168.254.100,限制只有這一個來源IP Address可以與sqlservr.exe連線。

  步驟二:

  重覆以上步驟,加入程式「C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe」到防火牆的例外清單中。
註:程式路徑可能需要依你安裝的路徑做修改。
  兩個簡單的步驟就可以將SQL 1433 port攻擊的傷害減到最低,當然針對SQL的攻擊還有很多,例如針對SQL語言的攻擊,是"SQL語言"不是"SQL Server",防1433 port攻擊只是確保資料庫系統的安全之一,但不保障透過其他而來的各種攻擊。例如:SQL injection,SQL隱碼攻擊 Or 跨網站指令碼, Cross-site scripting,通常簡稱為XSS…等等的攻擊。好的系統維護人員,必須時時注意,處處小心,讓系統保持在安全、穩定的狀況下。

總結

  雖然標題是談「遠端連線」的方法,但也談了很多基礎的東西,知道的就當成複習,不知道的就當成基礎篇看一看,當你是使用本機連接時,設定簡單,保護也簡單,但當你開放遠端連接時,設定的步驟就麻煩很多,而且還要考慮到網路安全方面,但遠端連接也立刻讓你的ASP.NET等應用程式的應用彈性大大提升。有一利必有一弊,掌握基本原則,不需要的服務絕不開,開了就要做好萬全的保護。

  最後再提醒大家,如果你想好好提升SQL Server方面的實力,那「SQL Server 2005 線上叢書」一定好好利用,如果本文中有任何看不清楚、不了解、不明白,先打開這本線上叢書,好好查詢了解,一定會有你要的答案。

最後感謝你看完"LoLo長"(閩南語)的本文,送給各位一份本文完整的PDF:



#2008/8/17:更新「.NET Framework 3.5環境」到Service Pack 1環境。

22 則留言:

  1. 不知道說原來有Vitual Basic, Vitual Studio,Vitual Studio 2008 Express這些產品
    只看過Visual Basic, Visual Studio,Visual Studio 2008 Express :p

    回覆刪除
  2. 打字方面我會在小心點,感謝你的提醒。

    回覆刪除
  3. 其實只要用 .NET Framework 3.5 的安裝程式,他自動會幫你裝好 2.0 ~ 3.5 所有的需求,不需要手動去一個一個裝,

    回覆刪除
  4. Dear 小聰頭
      因為我是從2.0開始學習及使用,所以我學到的"經驗"也就從2-->3-->3.5這樣而來,而PC也是從2升到3升到3.5。

      所以寫出來的教學才會是這樣的流程。我還真的沒有直接安裝3.5來使用,如果下次出4.0,我會試著從無到有安裝看看,感謝你提供的訊息。

    回覆刪除
  5. 不好意思 您的文章相當完整
    想請教一下
    我是用兩台真實IP的電腦(一台XP 一台vista)
    SQL server建立在 vista上
    使用XP這台始終無法開啟連線
    一直會出現錯誤26
    不知道您是否有遇過這樣的問題呢?

    回覆刪除
  6. 1.請問兩台的SQL Server版本是否相同,還有管理工具版本。
    2.2005的管理工具只能管理2005,2008的管理工具能管2005及2008。
    3.兩台的Firewall都關閉了嗎?

    回覆刪除
  7. 請問一下~
    我從第一步連接的時候也出現了錯誤26
    是因為我的window xp是家用版嗎?

    回覆刪除
  8. Sql Server Browser有沒有開啟?

    回覆刪除
  9. Express 如何叫出job& Database mail
    請告知謝謝!

    回覆刪除
  10. Express基本上就是有限制的版本,你所需要的功能未含在Express版本中,詳細的規格你可以參考:
    1. http://download.microsoft.com/download/2/D/F/2DF66C0C-FFF2-4F2E-B739-BF4581CEE533/SQLServer2008EnterpriseandStandardFeature%20Compare.pdf
    2. http://download.microsoft.com/download/e/8/8/e8859616-e95d-41fe-9f81-ff88388d772b/SQLServer%202008CompareComapctExpress.pdf

    回覆刪除
  11. 感謝您的分享讓我解決SQL 2005 Express相關的問題,在此再跟你說聲謝謝。

    回覆刪除
  12. 請問我用的是#c用的開發工具跟您一樣,但是我把東西上傳到租用的網路伺服器,結果卻出現這個狀況,請問我要如何解決呢,因為我是新手問了很多人都沒辦法給我方向跟解答,我不曉得到底問題出在哪裡該怎麼辦我一點資料庫概念都沒有
    http://black-faced-spoonbill.com.tw/spoonbill/index.aspx

    回覆刪除
  13. 1、先學習看錯誤訊息。
    2、單就錯誤訊息來看,與資料庫無關。
    3、HTTP 404,是找不到路徑。是否確認一下,你的路徑是否有問題?

    回覆刪除
  14. 請問我是權限有問題嗎?因為一直找不到答案試了好久都出現差不多的狀況
    http://black-faced-spoonbill.com.tw/birdnews/index.aspx
    Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

    Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

    It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

    回覆刪除
  15. 錯誤訊息你都看懂了嗎?

    回覆刪除
  16. 您好~想請問您一點小問題~
    以下是我一小段程式
    Public Shared Function GetFriendsList(ByVal UserAccount As String) As String()
    '建立資料庫連線
    Dim Conn As SqlConnection = New SqlConnection("Data Source=127.0.0.1\SQLEXPRESS;User ID=annabel;Password=xxxxx;database=STUDENTDA_2")
    Conn.Open()
    Dim sqlstr As String = "select * from student where UserAccount='" & UserAccount & "'"
    Dim cmd As SqlCommand = New SqlCommand(sqlstr, Conn)
    Dim DR As SqlDataReader = cmd.ExecuteReader()

    '如果不為空值
    If DR.HasRows Then
    Dim friends As Generic.List(Of String) = New Generic.List(Of String)()
    '如果有值就用While執行DR.Read(), 此Read()會傳回boolean值並往前下一個資料行
    While (DR.Read())
    Dim studentname As String = DR("studentName")
    friends.Add(studentname)
    End While
    '回傳 String() , 當然您也可以直接回傳Generic.List(Of String), 也很方便操作
    Return friends.ToArray()
    Else
    Return Nothing '如果沒有取得值就回傳Nothing
    End If
    DR.Close()
    Conn.Close()

    執行後一直卡在Conn.Open()就會出現例外狀況"無法開啟登入所要求的資料庫 "STUDENTDA_2"。登入失敗。 使用者 'annabel' 的登入失敗"
    想請問您我該怎麼解決呢?(平常也是用這組帳密就可以登入資料庫了!)是我的連線字串有問題?還是哪邊設定有問題呢?謝謝您~

    回覆刪除
  17. 哈囉~我已經成功了!

    回覆刪除
  18. 分享一下,問題點在那裡?你又是怎麼解決的?

    回覆刪除
  19. 作者已經移除這則留言。

    回覆刪除
  20. 這很難判斷,

    如果SQL Server能遠端連線,那在確認一下「防火牆」的設定。

    Client端的SMSS軟體版本都一樣嗎?

    回覆刪除
  21. 我想請問一下版主,在下有幸能拜讀你的文章,是關於連接遠端的資料庫,但經過一連串的設定後,連不到我想要的資料庫,但可以連到其他資料庫,請問這是甚麼原因??我想要的資料庫是ERP的資料庫。
    ERP是一個資訊管理系統,本身是用我想要聯的那個資料庫,我今天想要用別台電腦去連那資料庫,但是沒有出現那個資料庫。謝謝你

    回覆刪除
  22. 就你的描述,

    You --> ERP Database, bad connection.
    You --> Other Database, good connection.

    很明顯,ERP Database 設定有問題。
    如果是 MS SQL,請參考這 http://kkbruce.blogspot.com/2009/08/microsoft-sql-server-2008-express.html 篇。

    不然你就要能提供更進階的「錯誤訊息」,不然我也只能亂猜。

    回覆刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。