在SQL Server Configuration中啟用TCP/IP
多個SQL Server服務(wù)器之間通過網(wǎng)絡(luò)相互通信是需要TCP/IP支持的,為使SQL Server服務(wù)器能被遠(yuǎn)程連接必須確保TCP/IP已經(jīng)啟用。按照前面介紹的步驟打開SQL Server Configuration Manager,然后打開SQL Server Network Configuration,選擇你要設(shè)置的數(shù)據(jù)庫,然后點(diǎn)擊TCP/IP,右鍵啟用。如果有必要,你還可以啟用Named Pipes。記住,所有的修改都必須在重啟SQL Server服務(wù)之后才能生效!
在Windows防火墻中打開SQL Server的端口號
很多時候我們在對數(shù)據(jù)庫服務(wù)器本身做了很多次設(shè)置后仍然無法成功建立遠(yuǎn)程連接,這時就要考慮是否是防火墻在作怪。默認(rèn)情況下,許多端口號和服務(wù)都會被防火墻所禁止而不能遠(yuǎn)程訪問或執(zhí)行,SQL Server默認(rèn)的端口號也不例外。我們應(yīng)該重新設(shè)置Windows防火墻給SQL Server添加例外。除非人為修改,默認(rèn)情況下SQL Server的端口號是1433,將該端口號添加到Windows防火墻中。如果SQL Server存在命名實(shí)例,那么也應(yīng)該將SQL Server browser添加到Windows防火墻中。(有關(guān)SQL Server的命名實(shí)例將在后面介紹)
打開Windows控制面板,選擇Windows防火墻->Change Settings->Exceptions->Add Port
點(diǎn)擊Add port…在彈出的對話框中填入:
Name: SQL
Port Number: 1433
Protocol: Select TCP
在SQL Server管理器中啟用遠(yuǎn)程連接
這一步通常會被數(shù)據(jù)庫管理員忽略,如果未啟用數(shù)據(jù)庫遠(yuǎn)程連接,數(shù)據(jù)庫實(shí)例只允許在本地進(jìn)行連接而不能被遠(yuǎn)程連接,啟用遠(yuǎn)程連接同樣非常重要。默認(rèn)設(shè)置中遠(yuǎn)程連接是被禁止的。如下圖,打開SQL Server Management Studio,右鍵點(diǎn)擊數(shù)據(jù)庫實(shí)例然后選擇屬性菜單。
在打開的窗口中,左側(cè)選擇Connections,然后勾選"Allow remote connections to this server"。
啟用SQL Server Browser服務(wù)
如果SQL Server在安裝時不是用的默認(rèn)實(shí)例名而是自定義的實(shí)例名,并且沒有配置特定的TCP/IP端口號,那么按照我們前面的描述SQL Server仍然不能支持遠(yuǎn)程連接。但如果你啟用的SQL Server Browser服務(wù),便可以通過動態(tài)TCP/IP端口號進(jìn)行遠(yuǎn)程SQL Server連接。啟用SQL Server Browser服務(wù)非常簡單,與啟用SQL Server類似,在SQL Server Configuration Manager中右鍵點(diǎn)擊SQL Server Browser,然后選擇啟用。啟用該服務(wù)將會影響到服務(wù)器上所有已安裝的SQL Server實(shí)例。
在防火墻中為sqlbrowser.exe應(yīng)用程序創(chuàng)建例外
我們在前面已經(jīng)提到了,自定義命名的SQL Server實(shí)例要支持遠(yuǎn)程連接需要啟用sqlbrowser服務(wù),Windows防火墻可能會阻止該服務(wù)執(zhí)行。因此,我們必須在Windows防火墻中給sqlbrowser服務(wù)添加例外。
首先找到服務(wù)器上安裝sqlbrowser.exe程序的路徑,如C:Program FilesMicrosoft SQL Server90Sharedsqlbrowser.exe。如果不確定SQL Server安裝在什么地方,你可以在Windows搜索一下文件名。與我們在前面介紹的在防火墻中添加SQL TCP/IP端口號的方法類似,給sqlbrowser.exe應(yīng)用程序添加防火墻例外。
重新創(chuàng)建數(shù)據(jù)庫別名
創(chuàng)建SQL Server別名并在應(yīng)用程序中使用它很常見。使用數(shù)據(jù)庫別名可以確保一旦數(shù)據(jù)庫的位置發(fā)生了變化,如更換了新的服務(wù)器,IP地址發(fā)生了變化等,應(yīng)用程序中的數(shù)據(jù)庫連接字符串不用修改。否則你更換了數(shù)據(jù)庫的位置,你還要通知所有使用該數(shù)據(jù)庫的應(yīng)用程序修改源代碼或配置文件中的連接字符串,這恐怕是不可能的。所以,使用數(shù)據(jù)庫別名來配置連接字符串是一個非常明智的選擇。另外,你還可以使用相同的別名來指向不同的數(shù)據(jù)庫實(shí)例,當(dāng)修改別名參數(shù)時,可以馬上實(shí)現(xiàn)數(shù)據(jù)庫之間的切換。創(chuàng)建數(shù)據(jù)庫別名非常簡單,在SQL Server Configuration Manager中選擇Aliases進(jìn)行創(chuàng)建。