出自: http://blogs.msdn.com/b/apgcdsd/archive/2012/02/24/ms-sql-server-tcp-ip.aspx
TCP/IP的基本工作原理這里就不浪費(fèi)口水了。現(xiàn)在這網(wǎng)絡(luò)年代,誰不知道TCP/IP啊。不要跟我抬杠說你偏就沒聽說過TCP/IP阿,真是這樣那你得自己去補(bǔ)補(bǔ)課了。
?
TCP/IP協(xié)議有兩個基本的東西,一個是IP地址, 另一個是端口號。 在SQL Server?上使用TCP/IP協(xié)議是非常簡單的。首先要對SQL Server所在機(jī)器的網(wǎng)卡配置好TCP/IP協(xié)議并得到一個IP地址(通過靜態(tài)指定分配或從DHCP服務(wù)器動態(tài)獲得都行),接下來就需要通過SQL Server提供的工具做服務(wù)器端設(shè)置。
?
一、Microsoft SQL Server?上的TCP/IP協(xié)議
在運(yùn)行SQL Server 2000的服務(wù)器上,運(yùn)行服務(wù)器端網(wǎng)絡(luò)配置工具(運(yùn)行svrnetcn.exe即可調(diào)出)配置SQL Server?監(jiān)聽TCP/IP協(xié)議即可,如圖所示:
?
?
在運(yùn)行Microsoft SQL Server 2005/2008?上的服務(wù)器上,配置TCP/IP協(xié)議需要在SQL Server配置管理器(Configuration Manager)工具下的Network Configuration下面。下面是這個工具的截屏。
?
其實(shí),不論是SQL Server 2000還是SQL Server 2005/2008,配置的結(jié)果都是存放在注冊表HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.<InstanceID>\MSSQLServer\SuperSocketNetLib下面的各個項(xiàng)目里。不用管理界面,直接修改注冊表也能達(dá)到一樣的目的。
(要注意,如果你的機(jī)器上只有SQL Server 2000的默認(rèn)實(shí)例,那么注冊表所在位置會稍有不同,它是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib.)
?
配置好網(wǎng)絡(luò)協(xié)議以后,需要重新啟動SQL Server服務(wù),讓修改生效。啟動后,需要檢查SQL Server的errorlog,確認(rèn)這些協(xié)議都已經(jīng)被正常開啟。
Shared Memory正常啟動,可以看到如下信息。
2009-04-12 10:04:27.92 Server?????? Server local connection provider ?is ready to accept connection on [ \\.\pipe\SQLLocal\MSSQLSERVER ].
Named Pipe正常啟動,可以看到如下信息。
2009-04-12 10:04:27.92 Server?????? Server named pipe provider ?is ready to accept connection on [ \\.\pipe\sql\query ].
TCP/IP正常啟動,可以看到SQL Server實(shí)例正在偵聽的IP地址和Port號。例如:
2009-04-12 10:04:27.92 Server????? Server is listening on [ 'any' <ipv4> 1433].
--偵聽服務(wù)器上所有IP地址上的1433端口。
?
或者:
2008-06-12 15:01:58.150 Server?????? Server is listening on [ 172.30.30.80 <ipv4> 1433].
--只偵聽指定的IP地址上(172.30.30.80)的1433端口。
?
這里也順便回答一個小問題。 有些朋友問, 如果機(jī)器的IP地址改變,對SQL Server有沒有影響, 需要作什么動作等。答案很簡單, 重新啟動SQL Server?服務(wù)就可以了。?SQL Server?會自動監(jiān)聽機(jī)器的新IP地址,無需重新安裝或配置SQL Server。
?
二、Microsoft SQL Server 2000?監(jiān)聽的TCP/IP端口號
?
現(xiàn)在談?wù)勔粋€重要的配置即端口號。在服務(wù)器端網(wǎng)絡(luò)配置工具中或者在配置管理器中選中TCP/IP協(xié)議,點(diǎn)擊Properties按鈕,就可以查看SQL Server偵聽的端口號:
?
( SQL Server 2000服務(wù)器端網(wǎng)絡(luò)配置工具 )
?
(SQL Server 2005/2008配置管理器)
?
這里顯示的就是SQL Server監(jiān)聽的?TCP/IP?端口。默認(rèn)值為?1433。SQL Server服務(wù)器將在該端口上監(jiān)聽并接受客戶端的TCP/IP socket連接請求。你可以改變這個默認(rèn)值為別的端口號,只要該端口沒有被系統(tǒng)或別的應(yīng)用程序占用即可。一般說來高于5000以上的端口號碼都可以隨意使用,或者使用小于1024的操作系統(tǒng)或其他應(yīng)用程序不使用的空閑端口。為什么不用1024至5000之間的端口呢??因?yàn)槿笔∏闆r下操作系統(tǒng)會把這個范圍內(nèi)的端口分配給服務(wù)或應(yīng)用程序使用。為了避免潛在的端口沖突所以使用5000以上或1024以下的值。實(shí)際上不論那個范圍,只需要是空閑的沒使用的端口都可以。微軟有一篇很好的技術(shù)文檔詳細(xì)討論了Windows系統(tǒng)使用一些端口號,文檔連接如下:
?
Microsoft Windows?服務(wù)器系統(tǒng)的端口要求
http://support.microsoft.com/?id=832017
?
或許你會問,有沒有方法查看SQL Server?監(jiān)聽的端口啊?有的,可以使用netstat命令。?在DOS窗口下運(yùn)行?“netstat -an”命令即可列出系統(tǒng)所有使用中的端口號,當(dāng)然SQL Server?監(jiān)聽的端口也在其中了。下面是從“netstat -an”命令的輸出中摘取的有關(guān)SQL Server的端口號部分:
?
Active Connections
? Proto? Local Address????????? Foreign Address??????? State
? TCP??? 0.0.0.0:1433?????????? 0.0.0.0:0????????????? LISTENING
? TCP??? 169.254.173.244:1433?? 169.254.173.244:3952?? ESTABLISHED
UDP??? 0.0.0.0:1434?????????? *:*
?
上面列出的1434端口是比較有趣的一個端口,詳見后面的內(nèi)容。
?
SQL Server支持一臺機(jī)器安裝多套實(shí)例,即默認(rèn)實(shí)例和命名實(shí)例。對于默認(rèn)實(shí)例,缺省偵聽的IP端口是1433。如果你把默認(rèn)實(shí)例的監(jiān)聽端口改為非1433端口,?那么客戶端就有可能連接不上SQL server默認(rèn)實(shí)例。?這個時候必須使用客戶端網(wǎng)絡(luò)工具指定SQL Server?偵聽的IP端口或創(chuàng)建一個指定IP端口的SQL Server別名。關(guān)于客戶端網(wǎng)絡(luò)工具在下面會具體講。
?
三、TCP/IP靜態(tài)端口,動態(tài)端口,SQL Server Browser和UDP 1434端口的概念
?
首先討論1434?端口。1434端口是用來干嗎的呢?
我們都知道?SQL Server?支持多個實(shí)例,缺省的?SQL Server?實(shí)例使用默認(rèn)的1433端口。對于其余的命名實(shí)例(Named Instance),每次啟動所綁定的端口號可能都不一樣。讓每個用戶都去記住SQL的端口號是不可能的。一個數(shù)據(jù)庫普通用戶只會知道數(shù)據(jù)庫服務(wù)器的名字和實(shí)例名。那么怎么根據(jù)服務(wù)器名和實(shí)例名找到相應(yīng)的端口號呢?SQL Server 2000的時代,產(chǎn)品組開發(fā)了一套SQL Server?解析協(xié)議?(SSRP),用于偵聽?UDP 1434?端口。當(dāng)?SQL Server 2000?客戶端?Net-Library?連接到?SQL Server 2000?實(shí)例時,僅需要運(yùn)行該實(shí)例的計(jì)算機(jī)所在的網(wǎng)絡(luò)名和該實(shí)例名(如MYSQLSrv\inst1)。當(dāng)應(yīng)用程序請求連接SQL Server服務(wù)器時,客戶端網(wǎng)絡(luò)庫發(fā)送一個網(wǎng)絡(luò)包到SQL Server?服務(wù)器的1434端口。所有運(yùn)行?SQL Server 2000?實(shí)例的計(jì)算機(jī)都監(jiān)聽此端口。服務(wù)器收到查詢網(wǎng)絡(luò)包時將返回一個包含服務(wù)器上運(yùn)行的所有實(shí)例監(jiān)聽信息的數(shù)據(jù)包。對于每個實(shí)例,該數(shù)據(jù)包報(bào)告該實(shí)例正在監(jiān)聽的服務(wù)器?Net-Library?和具體網(wǎng)絡(luò)地址。客戶端應(yīng)用程序根據(jù)返回的網(wǎng)絡(luò)地址進(jìn)行連接。 舉個具體的例子,對于命名實(shí)例,該返回的網(wǎng)絡(luò)包中包含了SQL Server?服務(wù)器正在監(jiān)聽的TCP/IP端口,客戶端應(yīng)用程序得到端口號后才能和SQL Server?建立連接。
?
這個設(shè)計(jì)理念本身是挺好的。但是在2003年,一個叫Slammer的病毒利用SSRP功能組件里的一個bug,誘導(dǎo)SQL Server服務(wù)在UDP端口發(fā)出大量網(wǎng)絡(luò)包,從而導(dǎo)致了網(wǎng)絡(luò)阻塞,并且使數(shù)據(jù)庫服務(wù)癱瘓的嚴(yán)重后果。這個病毒是和SQL Server相關(guān)的迄今為止危害最大的病毒。為了避免這類悲劇事件再次發(fā)生,SQL Server 2005?引入了?SQL Server Browser?服務(wù)來替換原有的機(jī)制。
?
SQL Server browser用?SQL Server?解析協(xié)議?(SSRP)?偵聽?UDP?端口,并接受未經(jīng)身份驗(yàn)證的請求。為了防止惡意用戶利用這個服務(wù)攻擊SQL Server服務(wù)器,SQL Server?瀏覽器可以設(shè)置在低特權(quán)用戶的安全上下文中運(yùn)行,將受到惡意攻擊的幾率降到最低。可以將一個新建用戶加入SQLServerXXXXSQLBrowser$這個本地組里。并且需要通過使用?SQL Server?配置管理器更改登錄帳戶。SQL Server?瀏覽器的最小用戶權(quán)限如下:
- 拒絕通過網(wǎng)絡(luò)訪問該計(jì)算機(jī)
- 拒絕本地登錄
- 拒絕以批處理作業(yè)登錄
- 拒絕通過“終端服務(wù)”登錄
- 作為服務(wù)登錄
- 讀取和寫入與網(wǎng)絡(luò)通信(端口和管道)相關(guān)的?SQL Server?注冊表項(xiàng)
通過這樣的設(shè)計(jì),可以隔離惡意網(wǎng)絡(luò)攻擊對SQL Server服務(wù)本身的影響,并且通過限制SQL Browser登錄用戶權(quán)限的方法,限制了萬一SQL Browser受到攻擊,對整個服務(wù)器的影響。
啟動SQL Server Browser后,它將啟動并使用?UDP 1434?端口。SQL Server?瀏覽器將讀取注冊表(所有HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\MSSQLServer\SuperSocketNetLib下的記錄),識別計(jì)算機(jī)上的所有?SQL Server?實(shí)例,并注明它們使用的端口和命名管道。當(dāng)一臺服務(wù)器具有兩個或多個網(wǎng)卡時,SQL Server?瀏覽器會為?SQL Server?返回其遇到的第一個已啟用的端口。
當(dāng)?SQL Server?客戶端請求?SQL Server?資源時,客戶端數(shù)據(jù)驅(qū)動程序?qū)⑹褂?1434?端口向服務(wù)器發(fā)送一條?UDP?消息。SQL Server?瀏覽器將會應(yīng)請求實(shí)例的?TCP/IP?端口或命名管道名稱。然后,客戶端數(shù)據(jù)驅(qū)動程序?qū)⑹褂盟鑼?shí)例的端口或命名管道向服務(wù)器發(fā)送請求來完成連接。
當(dāng)?SQL Server Browser?服務(wù)不運(yùn)行時,如果您提供了正確的端口號或命名管道,仍可以連接到?SQL Server。如果?SQL Server?的默認(rèn)實(shí)例在?1433?端口上運(yùn)行,則可以使用?TCP/IP?連接到此默認(rèn)實(shí)例。
但是,如果?SQL Server Browser?服務(wù)未運(yùn)行,則以下連接無效:
- 在未完全指定所有參數(shù)(例如?TCP/IP?端口或命名管道)的情況下,組件嘗試連接到命名實(shí)例。
- 生成或傳遞其他組件隨后要用來進(jìn)行重新連接的服務(wù)器/實(shí)例信息的組件。
- 未提供端口號或管道就連接到命名實(shí)例。
- 在未使用?TCP/IP 1433?端口的情況下,將?DAC?連接到命名實(shí)例或默認(rèn)實(shí)例。
- 枚舉?SQL Server Management Studio、企業(yè)管理器或查詢分析器中的服務(wù)器。
如果應(yīng)用程序通過網(wǎng)絡(luò)訪問?SQL Server,若要停止或禁用?SQL Server Browser?服務(wù),必須為每個實(shí)例分配一個特定端口號,并在客戶端應(yīng)用程序代碼中指定該端口號。但此方法存在如下問題:
- 必須更新和維護(hù)客戶端應(yīng)用程序代碼才能確保它連接到正確的端口。
- 如果服務(wù)器上的其他服務(wù)或應(yīng)用程序占用了您為每個實(shí)例選擇的端口,則會導(dǎo)致?SQL Server?實(shí)例不可用。
?
所以SQL Browser這個服務(wù)做的事情雖然很簡單,但對正常的客戶端連接非常重要。如果某些客戶端連不上SQL Server,報(bào)告“SQL Server doesn't exist or access denied”,可以嘗試指定端口,看看能不能連上。如果這樣能夠連上,一般是因?yàn)閁DP 1434在網(wǎng)絡(luò)上被禁用了,需要在防火墻或者網(wǎng)關(guān)上打開這個端口。
?
SQL Browser本身很少出現(xiàn)問題。不過由于其設(shè)計(jì)比較簡單,一共只有4個線程在接受SSRP的包(2個給IPv4,2個給IPv6)。因此一旦這些線程都因?yàn)楫惓6K止的話,可能會出現(xiàn)SQL Browser服務(wù)運(yùn)行正常但是連接命名實(shí)例有問題的情況。這個時候你會在Windows的事件日志里看到以下錯誤:
The SQLBrowser processing of requests against a particular IP address has encountered a critical error. Processing of requests on this address has been?halted ?(event ID 14)
微軟已經(jīng)有發(fā)布了一個補(bǔ)丁程序來解決這個問題,參見:
http://support.microsoft.com/kb/2526552
?
另外需要注意的是SQL Browser啟動賬號要有?讀取和寫入與網(wǎng)絡(luò)通信(端口和管道)相關(guān)的?SQL Server?注冊表項(xiàng)(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\MSSQLServer\SuperSocketNetLib)的權(quán)力。如果注冊表讀不到,SQL Browser不會報(bào)錯,但是就不告訴客戶端想要的port和pipe的信息,也會導(dǎo)致客戶端連不上。
?
再來討論靜態(tài)端口。本文一開頭提及如何修改SQL Server?監(jiān)聽的端口。 如果你配置的端口是非0值那么就是靜態(tài)端口了。也即是我們指定了一個靜態(tài)的端口號,SQL Server?將在該端口上監(jiān)聽。這對于默認(rèn)實(shí)例和命名實(shí)例都是一樣的。只是對于默認(rèn)實(shí)例,如果端口不是1433,那么得在客戶端使用網(wǎng)絡(luò)配置工具指定缺省連接端口或創(chuàng)建SQL別名來進(jìn)行連接。而對于命名實(shí)例則不一樣。你可以指定任意端口值。只要SQL Server?在該端口進(jìn)行監(jiān)聽,那么客戶端就能夠通過1434端口查詢出該命名實(shí)例的端口值而進(jìn)行連接。
?
另外,萬一指定的端口已經(jīng)被占用時,SQL Server?又會怎么辦呢? 對于默認(rèn)實(shí)例,SQL Server?干脆就放棄監(jiān)聽TCP/IP協(xié)議并在日志中記錄“不能監(jiān)聽TCP端口”類似的信息。而對于命名實(shí)例則聰明一些。SQL Server?命名實(shí)例會自動選擇下一個空閑的端口來監(jiān)聽。
?
如果把SQL Server?監(jiān)聽的端口設(shè)為0又會如何?這個問題比較有趣。事實(shí)是,當(dāng)設(shè)為0時,無論是默認(rèn)實(shí)例還是命名實(shí)例,SQL server?都理解為需要動態(tài)配置監(jiān)聽的端口。動態(tài)配置的意思是,它們都會自動選擇一個系統(tǒng)空閑的端口進(jìn)行監(jiān)聽。但記住,對于默認(rèn)實(shí)例,如果選擇的端口不是1433的話,嘿嘿,你得需要在客戶端使用cliconfg.exe工具配置缺省連接端口或使用別名了。
?
動態(tài)配置端口是否意味著SQL Server?每次重新啟動后都會隨機(jī)選擇一個未用端口呢?這倒不是的。 當(dāng)重新啟動后,SQL Server?將設(shè)法偵聽之前使用的端口。如果?SQL Server?不能綁定到該端口,那么會動態(tài)地綁定到另一個空閑端口。
?
四。客戶端的TCP/IP協(xié)議配置
?
大多數(shù)情況下在客戶端你不需要進(jìn)行配置,因?yàn)門CP/IP協(xié)議默認(rèn)是啟用的。和命名管道一樣,可以使用客戶端網(wǎng)絡(luò)實(shí)用工具進(jìn)行配置TCP/IP協(xié)議。客戶端應(yīng)用程序都是通過加載SQL Server的數(shù)據(jù)驅(qū)動控件做SQL Server連接的。現(xiàn)在客戶端數(shù)據(jù)驅(qū)動庫主要有2種:
?
1.MDAC (Microsoft?數(shù)據(jù)訪問組件)
運(yùn)行cliconfg.exe或從開始-->程序-->Microsoft SQL Server -->客戶端網(wǎng)絡(luò)實(shí)用工具即可調(diào)出。
?
客戶端網(wǎng)絡(luò)實(shí)用工具中左邊是禁用的協(xié)議,右邊的是啟用的協(xié)議。如果右邊沒有TCP/IP協(xié)議,則點(diǎn)擊Enable按鈕啟用它。 選中TCP/IP后點(diǎn)擊屬性(Properties)按鈕即可查看客戶端連接的缺省的TCP/IP端口。缺省情況下1433(參考圖4)。如果服務(wù)器默認(rèn)實(shí)例(不是命名實(shí)例)監(jiān)聽的端口不是1433,那么你需要在這里把default port作相應(yīng)的改變。當(dāng)然你可以像在命名管道篇中介紹的那樣創(chuàng)建服務(wù)器別名特別指定服務(wù)器的端口也可以。對于命名實(shí)例, 客戶端網(wǎng)絡(luò)庫會利用UDP 1434端口查詢服務(wù)器命名實(shí)例的監(jiān)聽協(xié)議信息。
?
?
可以在客戶端配置SQL Server別名,以明確指定連接到SQL Server所使用的協(xié)議。注意在別名中可以指定端口,也可以使用動態(tài)查詢端口功能。
?
?
當(dāng)默認(rèn)實(shí)例被配置為偵聽一個非1433端口我們就可以通過配置默認(rèn)端口或者別名來讓客戶端程序找到默認(rèn)實(shí)例。
?
配置的信息保存在注冊表里,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib子目錄下面。也可以直接改值,一樣能達(dá)到效果。
?
2. SQL Server Native Client
在一臺沒有安裝過SQL Server 2005或者2008的機(jī)器上,缺省不會安裝SQL Server Native Client。在安裝?SQL Server 2008?或?SQL Server?客戶端工具時,將同時安裝?Microsoft SQL Server Native Client 10.0。如果計(jì)算機(jī)上還安裝了?SQL Server Native Client?的?SQL Server 2005?版本,則?SQL Server Native Client 10.0?將與早期版本Microsoft SQL Server Native Client 9.0并行安裝。
如果安裝有SQL Server?客戶端工具,我們可以通過SQL Server Configuration Manager來配置客戶端網(wǎng)絡(luò)協(xié)議。配置的方法和MDAC類似。
?
圖?5 - 5
如果沒有安裝這個工具,可能就需要直接修改注冊表了。Microsoft SQL Server Native Client 9.0的信息存放在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI9.0下面,Microsoft SQL Server Native Client 10.0的信息存放在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI10.0下面。
?
?
五。?TCP/IP連接問題的解決步驟
?
步驟1:?驗(yàn)證SQL Server?是否真的監(jiān)聽了TCP/IP協(xié)議
?
為了驗(yàn)證SQL Server?確實(shí)監(jiān)聽了TCP/IP協(xié)議,可以打開SQL Server Query Analyzer?(查詢分析器),然后運(yùn)行如下命令:
?
exec master..xp_readerrorlog
?
在結(jié)果欄,如果看到類似如下一行則表明SQL Server已經(jīng)監(jiān)聽了TCP/IP:
?
?
2000-08-31 21:47:01.52 server??? SQL server listening on 169.254.173.244: 1433.
2000-08-31 21:47:01.52 server??? SQL server listening on 127.0.0.1: 1433.
2000-08-31 21:47:01.53 server??? SQL server listening on TCP, Shared Memory.
?
如果發(fā)現(xiàn)SQL Server?沒有監(jiān)聽TCP/IP協(xié)議,請使用服務(wù)器端網(wǎng)絡(luò)配置工具(運(yùn)行svrnetcn.exe即可調(diào)出)確認(rèn)是否配置好SQL Server?監(jiān)聽TCP/IP協(xié)議。
?
步驟2:?驗(yàn)證服務(wù)器監(jiān)聽的TCP/IP端口和客戶端配置的缺省值或別名中指定的值一致。
?
使用客戶端網(wǎng)絡(luò)實(shí)用工具檢查客戶端的連接協(xié)議配置,確保客戶端啟用了TCP/IP。當(dāng)然,客戶端連接的缺省端口需要和SQL服務(wù)器監(jiān)聽的一致。另外,如果有別名,需要仔細(xì)查看其指定的端口是否正確。如果客戶端的別名設(shè)置錯誤,也會引起連接問題。
?
步驟3:檢查網(wǎng)絡(luò)連通性。
?
要確保不但能夠ping通?SQL Server服務(wù)器的IP地址,也能夠ping?通SQL Server服務(wù)器的名稱。如果ping?服務(wù)器名字有問題, 說明DNS或WINS服務(wù)器配置有問題, 可以在HOSTS文件(HOSTS?文件在system32\drivers\etc目錄下)中手工加入IP地址和服務(wù)器對如下:
?
169.254.173.244? MySQLserver
?
如果連ping IP?地址都有問題, 那么得好好檢查網(wǎng)絡(luò)的配置包括硬件的連接。 在服務(wù)器上和客戶端都使用 “ipconfig/all”命令檢查服務(wù)器和客戶端是否在同樣的網(wǎng)絡(luò)上。
?
步驟4:使用TELNET命令檢查SQL?監(jiān)聽的端口。
?
要驗(yàn)證SQL Server?監(jiān)聽的端口, 可以使用TELNET命令。假設(shè)SQL Server的IP地址是192.168.1.1,端口是1234, 那么可以運(yùn)行如下命令:
?
TELNET 192.168.1.1 1234
?
如果TELNET成功,那么結(jié)果將是一個只有光標(biāo)在閃的黑色屏幕。如果不成功, 那么你會得到出錯的信息。需要根據(jù)這些出錯信息繼續(xù)排查問題。
?
步驟?5:檢查登錄用戶的SQL Server訪問權(quán)限。
?
和命名管道一樣,需要確保客戶端登錄(login)帳號有權(quán)限訪問SQL Server。有關(guān)這方面內(nèi)容請參考命名管道篇。
?
需要注意的是,如果你使用Windows?系統(tǒng)帳號而不是SQL Server?本身的login, 那么和命名管道一樣,你需要有訪問服務(wù)器資源的權(quán)限。如果該Windows系統(tǒng)帳號不能通過Windows的認(rèn)證,自然不能訪問SQL server.?如果懷疑是Windows系統(tǒng)帳號的權(quán)限問題,可以使用SQL Server?的login?如sa嘗試登錄。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
