透過網際網路連接到 SQL Server

如果用戶端和伺服器都連接到網際網路,就可以利用 SQL Server Management Studio 或是利用以 OLE DB 或開放式資料庫連接 (ODBC) 為基礎的用戶端應用程式,使用網際網路連接到 Microsoft SQL Server Database Engine 執行個體。

若要透過網際網路共用資料,則必須使用「TCP/IP 網路程式庫」,並確定已啟用 TCP/IP 支援。如果伺服器使用網域名稱系統 (DNS) 來註冊,您就可以使用已註冊的名稱來連線。

雖然網際網路連線方式比 Microsoft ISA Server 不安全,但如下所述使用防火牆或加密的連線,可協助您維持機密資料的安全。

搭配防火牆系統使用 SQL Server Database Engine

許多公司使用防火牆系統,將公司網路與未經授權的網際網路存取隔開。防火牆可以只轉寄已指定本機網路內特定 TCP/IP 位址的要求,限制網路的存取。防火牆會封鎖對於所有其他網路位址的要求。設定防火牆轉寄指定 Database Engine 執行個體之網路位址的網路要求,就能允許網際網路應用程式存取本機網路的 SQL Server Database Engine 執行個體。

若要搭配防火牆使用,則 Database Engine 必須接聽防火牆設定要轉寄的網路位址。SQL Server Database Engine 的 TCP/IP 網路位址由兩個部份構成;電腦內與一或多張網路卡相關聯的 IP 位址,以及 SQL Server 執行個體特有的 TCP 通訊埠位址。依預設,Database Engine 的預設執行個體會使用 TCP 通訊埠 1433。不過,具名執行個體會在第一次啟動時,動態指派未使用的 TCP 通訊埠編號。若原始 TCP 通訊埠編號正由其他應用程式使用中,具名執行個體也可以在稍後啟動時動態變更其 TCP 通訊埠位址。SQL Server 只有在接聽的通訊埠本身是動態選取的情況下,才會動態變更到未使用的 TCP 通訊埠;若固定指派的通訊埠正由其他應用程式使用中,SQL Server 會顯示錯誤,並繼續接聽其他通訊埠。不過,因為 1433 是 SQL Server Database Engine 的已知註冊位址,所以其他應用程式不大可能會佔用該通訊埠。

搭配防火牆使用 Database Engine 的具名執行個體時,可使用「SQL Server 組態管理員」將具名執行個體設定為接聽特定 TCP 通訊埠。所挑選的 TCP 通訊埠必須是同一台電腦或相同叢集內正在執行的其他應用程式,所未佔用的通訊埠。如需有關註冊給各種應用程式使用之通訊埠的常見清單,請移至 Internet Assigned Numbers Authority 網站:http://www.iana.org

網路系統管理員應設定防火牆,轉寄 Database Engine 所接聽之 IP 位址和 TCP 通訊埠 (預設執行個體的 TCP 通訊埠 1433,或為具名執行個體設定的 TCP 通訊埠) 的 SQL Server 通訊。此外,因為 Microsoft SQL Server 會使用 UDP 通訊埠 1434 建立應用程式的通訊連結,所以網路管理員必須設定防火牆,以轉送在相同 IP 位址上 UDP 通訊埠 1434 的要求。如需 UDP 通訊埠 1434 的詳細資訊,請參閱<SQL Server Browser 服務>。

例如,某台電腦上正在執行一個預設的執行個體,以及兩個 SQL Server Database Engine 的具名執行個體。設定該台電腦,讓三個執行個體接聽的網路位址全都擁有相同的 IP 位址。預設執行個體在接聽 TCP 通訊埠 1433,而其他具名執行個體分別在接聽 TCP 通訊埠 1434 與 1954。網路系統管理員接著設定防火牆,以轉寄該 IP 位址上之 TCP 通訊埠 1433、1434 與 1954 的網路要求。

如需有關預設 Windows 防火牆設定的詳細資訊以及影響 Database Engine、Analysis Services、Reporting Services 和 Integration Services 之 TCP 通訊埠的描述,請參閱<將 Windows 防火牆設定成允許 SQL Server 存取>。