2013年1月10日 星期四

SQL_程式無法連線到SQL Server相關問題排解

在裝機時其中一個很重要的事情,就是確認程式是否可以正確連線到資料庫,若是無法正常連線,可以逐步測試來確認有可能出問題的設定:

0. 確認輸入之伺服器名稱正確,包含安裝兩台以上之SQL Server是否有增加實體名稱(伺服器/實體名稱)

1. 以本機確認Windows驗證(伺服器/實體名稱)是否可以通過:若是無法通過,應確認SQL Server在安裝時的管理者是否還存在於windows帳號當中,若原設定的管理者被刪除,唯有重建資料庫與重灌一途。

2. 以本機確認SQL驗證(伺服器/實體名稱)是否可以通過:若是無法通過,請用管理者帳號確認該SQL帳號是否已於安全性的登入中正確顯示。

且確認該資料庫是否設定為"SQL Server及Windows驗證模式。


3. 以本機確認SQL驗證(ip/實體名稱)是否可以通過:若是無法通過,至SQL Server組態管理員確認是否有開啟TCP/IP設定。

4. 以本機確認驗證通過後,是否可以正常開啟要查詢的資料庫:若是跳出無法存取資料庫XXX,則確認該SQL帳號是否有給定存取該資料庫之權限。

5. 以另一台伺服器測試SQL驗證(ip/實體名稱),若無法連線:
(1) 至SQL Server組態管理員查看ip設定為何?若有指定之port,連線時必須以"ip/實體名稱,port"來連線。
(2) 至SQL Server組態管理員或服務管理查看SQL Browser服務是否有開啟。
(3) 以telnet測試,該port是否可使用。(安裝請參考)
(4) 確認防火牆是否有開啟,若有開啟確認是否有輸入相關規則。(包含:TCP/1433與UDP/1434)

(5) 若是express版本,沒有指定特定port,而使用動態port,則需增加規則。(讓sqlserver.exe可穿越防火牆)

*.但微軟於官方文件提到:另一種設定具名執行個體到固定通訊埠的方法,就是在防火牆中為像是 sqlservr.exe (針對 Database Engine) 等 SQL Server 程式,建立例外。 雖然這樣做很方便,但是當您使用具有進階安全性 MMC 嵌入式管理單元的 Windows 防火牆時,其通訊埠編號將不會顯示在 [輸入規則] 頁面的 [本機通訊埠] 欄中。 如此一來可能會讓您更難以稽核哪些通訊埠已開啟。其他考量是 Service Pack 或累積更新可能會變更 SQL Server 可執行檔的路徑,因而使防火牆規則失效。

(6) 詢問該單位網路管理員,是否有別的防火牆設備或軟體,請他開啟相關連接埠。


以上,若是還是無法正常連接資料庫,那就回家休息一下。

沒有留言:

張貼留言