小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

為SQL Server使用非標準的端口...

 MG的圖書館 2009-04-21

為SQL Server使用非標準的端口

你正在使用標準的端口號1433來連接SQL Server 2005嗎?你考慮過設置SQL Server來監(jiān)聽一個不同于1433的端口號嗎?我曾經就是這樣。在這篇文章里,我將討論我是怎樣做的,以及我在設置SQL Server 2005去使用一個非標準的端口號時遇到的問題。

使用默認端口號的問題

當你安裝SQL Server時,默認實例是監(jiān)聽1433端口號的。眾所周知,這是默認的端口號。因此,通常你會看到來自黑客對1433端口的攻擊。所以為了最小化黑客通過默認端口號來訪問的潛在的威脅,你應該考慮使用一個不同于1433的非標準的端口號。

當安裝一個命名實例后,在它啟動的時候默認使用的是動態(tài)決定的端口號。因此,命名實例每次啟動時,都有可能監(jiān)聽不同的端口號。這會有些問題,特別是如果你需要通過防火墻來訪問的話。既然端口號可以動態(tài)變化,那么你就不能使用防火墻規(guī)則來限制用特定端口號訪問你的SQL Server。因此,為了限制對你的SQL Server的訪問,你需要配置SQL Server去監(jiān)聽一個特定的端口。

怎樣配置SQL Server去監(jiān)聽特定的端口

既然默認端口號是易受黑客攻擊的,而命名實例又是動態(tài)的設置端口號,那么你應該考慮指定你的每一個SQL Server實例去監(jiān)聽一個特定的端口。SQL Server使用一個特定的端口提供了更安全的環(huán)境。那么怎樣去配置SQL Server 2005使其監(jiān)聽一個不同的端口呢?為了實現這個目標,SQL Server提供了SQL Server配置管理器工具。


為了啟動配置管理器,單擊開始→程序→Microsoft SQL Server 2005→配置工具→SQL Server 配置管理器。一旦你啟動了SQL Server配置管理器,你就可以打開SQL Server 2005網絡配置的節(jié)點。你這樣做完后,就會看到類似下面的屏幕:





這里你可以看到我有4個不同的SQL Server實例在運行。一個是默認實例,叫做MSSQLSERVER,一個是Express版,叫做SQLEXPRESS,接著我有兩個命名實例,叫做SERVER1SERVER2。


為了改變這些實例的端口配置,我將單擊一個實例,這樣會在右邊顯示可用的不同協(xié)議。下面是我單擊實例SERVER2時的屏幕快照:





你可以看到我啟動了兩個協(xié)議,“Shared Memory”和“TCP/IP”。為了改變端口設置,在右邊欄里右擊TCP/IP協(xié)議,然后選擇屬性選項。當你做完后,將顯示下面的屏幕快照:





在這個屏幕里,你可以看到“全部監(jiān)聽”設置為“是”。這意味著該實例將監(jiān)聽所有的IP地址。當你安裝SQL Server實例時,監(jiān)聽所有的IP地址是默認設置。如果你想讓SQL Server僅監(jiān)聽一個特定的IP地址的話,那么你需要把“全部監(jiān)聽”設置改為“否”。


為了指定你想要讓SQL Server監(jiān)聽的特定端口,你需要單擊上面屏幕的“IP地址”標簽。當你做完后,會顯示類似下面的屏幕:





你可以看到IP1IP2是禁用的(“已啟用”選項設置為“否”),在IPALL里的TCP動態(tài)端口設置為1317。由于SERVER2是命名實例,在實例啟動的時候IP地址是動態(tài)設置的,端口1317正好是我的命名實例目前使用的端口號。如果我停止該實例并重啟,那么該實例在重啟的時候可能使用一個不同的端口,因為端口號是動態(tài)設置的。當TCP動態(tài)端口選項被設置為0時,它表示數據庫引擎正在監(jiān)聽動態(tài)端口。


為了確保命名實例使用一致的端口號,或者你想要為默認實例改變默認端口號,你所需要做的就是指定一個特定的端口號來讓你的SQL Server實例去監(jiān)聽,就象下面這樣:





這里我已經指定了我使用的端口8484作為我的命名實例SERVER2的端口號。我只需在TCP端口選項里輸入這個端口號就行了。

當使用特定端口設置時的客戶端連接

客戶端連接到一個使用非標準、依賴于你的安裝設置的SQL Server實例時,可能會有一些問題,尤其是在你沒有運行SQL Server Browser服務的時候??蛻舳擞?/font>3種方法連接到一個使用特定非標準端口號的實例。


第一種方法是運行SQL Server Browser服務。當這個服務運行的時候,它會通知客戶端要求連接的實例正在使用的端口號。這可以避免客戶端在連接一個SQL Server實例時必需知道端口號的情形。如果你想要更安全的環(huán)境,那么你不要運行SQL Server Browser服務。通過不運行SQL Server Browser服務,客戶端為了連接SQL Server就需要在連接字符串里指定正確的端口號。


第二個方法是在客戶端機器上創(chuàng)建一個SQL Server的別名。通過運行SQL Server配置管理器工具可以在客戶端機器上創(chuàng)建一個別名。在SQL Native Client節(jié)點下,右擊別名然后選擇新建別名。做完后會出現新建別名對話框。在該對話框里,你可以創(chuàng)建一個別名,并指定該別名的實例和端口號。下面這個屏幕快照顯示了我是怎樣為我的指定了使用端口號8484來連接的命名實例SERVER2創(chuàng)建別名的。





注意我已經指定了別名為SERVER2,它使用的端口號是8484,并且服務器選項的值為SERVER2。創(chuàng)建該別名來把別名SERVER2與端口號為8484的服務器SERVER2相關聯。一旦我指定這些信息,我就可以單擊確定按鈕或者單擊應用再單擊確定按鈕來創(chuàng)建別名了。


最后一個方法是在連接字符串里通過編程來指定端口號。由于我不是一個連接字符串的大師,所以我不敢保證所有不同的方法都能達到這個目標,但有一個方法可行,就是在連接字符串里連同服務器名稱一起指定端口號。這可以通過在服務器名稱后立即輸入“,<端口號>”來實現。所以對于我上面的例子SERVER2,我將有一個類似下面的連接字符串:

Data Source=SERVER2,8484;Initial Catalog=AdventureWorks

注意我已經在連接字符串的Data Source參數里的服務器名稱的后面添加了“,8484”。

使用非標準端口的問題

我發(fā)現在使用非標準端口或為命名實例指定一個特定端口是沒有什么真正的問題的。我曾經遇到過的最大問題是程序員不斷的過來對我說“我不能連接到SQL Server”這一事實。然后當我和他們一起診斷連接問題的時候,我們發(fā)現他們在試圖連接的時候忘記了連同服務器名稱一起指定端口號。因此,如果你計劃使用非標準的端口號,那么你需要確保你清楚地解釋了連接字符串將需要有一個端口號以確保連接能成功。

結論

正如你所看到的,在用一個特定的端口號來設置你的SQL Server實例時沒有太多的工作要做。最大的問題就是確保連接字符串的編碼要正確。當設置端口號的時候,要確保該端口號沒有被使用。為了確保你的環(huán)境更加安全,我建議你關閉SQL Server Browser服務。這樣所有的客戶端在連接SQL Server的時候都要求指定端口號。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多