Chapter 1 Securing Your Server and Network(6):為SQL Server訪問配置防火牆,chaptersecuring
原文出處:http://blog.csdn.net/dba_huangzj/article/details/38082123,專題目錄:http://blog.csdn.net/dba_huangzj/article/details/37906349
未經作者同意,任何人不得以“原創”形式發布,也不得已用於商業用途,本人不負責任何法律責任。
前一篇:http://blog.csdn.net/dba_huangzj/article/details/38063823
前言:
SQL Server 的通訊基於TCP和UDP連接埠,如果你需要從非原生機器上訪問SQL Server,需要開啟防火牆的連接埠。而Windows Server 2008 預設防火牆是開啟的。簡單來說,就是全部連接埠都被阻止。
實現:
可以按照下面步驟配置Windows 防火牆:
1. 在【開始】菜單中開啟【控制台】,也可以直接點擊網狀圖標開啟,然後選擇【系統和安全】,點擊【Windows 防火牆】,最後點擊【進階設定】,
原文出處:http://blog.csdn.net/dba_huangzj/article/details/38082123,專題目錄:http://blog.csdn.net/dba_huangzj/article/details/37906349
2.右鍵【入站規則】,選擇【建立規則】,然後在【規則類型】中選擇【連接埠】,然後在【協議和連接埠】中輸入下面的連接埠:
- 如果僅用SQL Server 引擎的預設執行個體,輸入1433
- 如果需要使用Analysis Services 引起的預設執行個體,輸入2383
- 如果使用Service Broker ,輸入4022
點擊【下一步】。完整的連接埠列表可以訪問:http://msdn.microsoft.com/zh-cn/library/cc646023%28v=SQL.110%29.aspx
原文出處:http://blog.csdn.net/dba_huangzj/article/details/38082123,專題目錄:http://blog.csdn.net/dba_huangzj/article/details/37906349
3. 在【操作】項中選擇【允許串連】,點擊【下一步】:
4. 在【設定檔】項中,如果你在域中,僅保留【域】選項的勾選,另外兩個,主要用於工作站或筆記本。如果伺服器是通過標識為【公用】的網路連接的,比如從互連網直接存取,並且你想SQL Server能被外部發現,可以選擇【公用】,當然,這比較危險。最後選擇【下一步】並輸入規則名。
原理:
原文出處:http://blog.csdn.net/dba_huangzj/article/details/38082123,專題目錄:http://blog.csdn.net/dba_huangzj/article/details/37906349
上面描述了如何開啟SQL Server預設執行個體的連接埠,比如TCP 1433。而具名執行個體使用的是動態連接埠,每次SQL Server 服務重啟後連接埠可能改變。這個連接埠是通過SQLServer Browser 服務監聽UDP 1434連接埠來實現用戶端的通訊。動態連接埠不適用於防火牆配置,因為使用動態連接埠會強制你開啟一個“範圍”的連接埠。
最好的方式是指定一個已經在防火牆中配置了的固定TCP連接埠給具名執行個體,並禁用SQL Server Browser,然後關閉防火牆中的UDP 1434連接埠。這部分會在接下來的一篇文章中介紹。
注意:從Windows Server 2008/Vista開始,預設動態連接埠範圍已經改變,詳細資料可從這裡查看:http://support.microsoft.com/kb/929851
更多資訊:
為了限制特定的使用者或者機器訪問SQL Server,可以通過防火牆的【入站規則】實現,可以在【入站規則】中找到對應的服務,如【SQL Server】,右鍵然後點擊【屬性】,在【常規頁】勾選【只允許安全連線】,
然後分別在【遠端使用者】和【遠端電腦】標籤中授予特定使用者或電腦訪問:
另外,可以在SQL Server中用命令查詢特定連接埠,可以使用下面語句查看Service Broker、鏡像中的連接埠,如果需要使用這些功能,需要開放對應的連接埠:
SELECT name , protocol_desc , port , state_desc FROM sys.tcp_endpoints WHERE type_desc IN ( 'SERVICE_BROKER', 'DATABASE_MIRRORING' );
除了圖形化操作,還可以使用netsh.exe命令實現防火牆配置,以管理員身份運行這個命令,並用下面語句開放TCP 1433連接埠:
netsh advfirewall firewall add rule name = "SQL Server" dir = in protocol = tcp action = allow localport = 1433,2383 profile = DOMAIN
原文出處:http://blog.csdn.net/dba_huangzj/article/details/38082123,專題目錄:http://blog.csdn.net/dba_huangzj/article/details/37906349
更多相關資訊可以訪問:(如何使用"netsh 由防火牆"上下文,而不是控制 Windows Vista 和 Windows Server 2008 中的 Windows 防火牆行為"netsh 防火牆"上下文)
http://support.microsoft.com/kb/947709
Sql server2008 遠端連線伺服器 詳細的防火牆配置
建議在防火牆中把1433連接埠開啟
sql server 2008點擊運行後,出現提示為遠端偵錯配置防火牆頁面,要開通DCOM,防火牆添加了TCP與UD
是win7?win2012? 以管理員身份執行應該就好了