淺談SQL Server中鏈接服務(wù)器將替代遠(yuǎn)程服務(wù)器_Mssql數(shù)據(jù)庫教程
推薦:怎樣合理設(shè)置內(nèi)存讓數(shù)據(jù)庫與其他程序共存在SQL Server數(shù)據(jù)庫中,有min server memory與max server memory兩個(gè)內(nèi)存選項(xiàng)。數(shù)據(jù)庫管理員合理設(shè)置這兩個(gè)選項(xiàng)可以讓SQL SERVER數(shù)據(jù)庫系統(tǒng)與其他英勇程序和平共存。顧名思義,min server memory就是設(shè)置數(shù)據(jù)系統(tǒng)所使用的最小內(nèi)存,而max server memory用來
遠(yuǎn)程服務(wù)器配置可以使得數(shù)據(jù)庫管理員在服務(wù)器以外的主機(jī)上連接到一個(gè)SQL Server實(shí)例,以便管理員在沒有建立單據(jù)連接的情況下在其他的SQL Server實(shí)例上執(zhí)行存儲(chǔ)過程等相關(guān)操作。在遠(yuǎn)程服務(wù)器配置模式下,客戶端所連接發(fā)服務(wù)器接受客戶端的請(qǐng)求,并代表客戶端把這個(gè)請(qǐng)求發(fā)送到遠(yuǎn)程的數(shù)據(jù)庫服務(wù)器。遠(yuǎn)程服務(wù)器執(zhí)行完畢后,會(huì)把執(zhí)行報(bào)告返回給原始的服務(wù)器。然后這個(gè)原始服務(wù)器再把結(jié)果傳遞給客戶端。不過在SQL Server中,之所以要實(shí)現(xiàn)這種技術(shù),主要是出于兼容性的需要。出于安全、性能方面的考慮,現(xiàn)在微軟官方是建議數(shù)據(jù)庫管理員通過鏈接服務(wù)器功能來對(duì)服務(wù)器進(jìn)遠(yuǎn)程操作。因?yàn)殒溄臃⻊?wù)器可以比遠(yuǎn)程服務(wù)器提供更高的安全性與更好的性能。
一、鏈接服務(wù)器的優(yōu)點(diǎn)。
在遠(yuǎn)程服務(wù)器模式下,客戶端是通過另外一個(gè)SQL Server數(shù)據(jù)庫服務(wù)器連接到遠(yuǎn)程的SQL Server數(shù)據(jù)庫服務(wù)器中。而鏈接服務(wù)器模式下,客戶端是通過鏈接服務(wù)器連接到遠(yuǎn)程的SQL Server數(shù)據(jù)庫服務(wù)器中。也就是說,微軟專門開發(fā)了一個(gè)鏈接服務(wù)器,用來跟遠(yuǎn)程的數(shù)據(jù)庫進(jìn)行鏈接。由于這個(gè)鏈接服務(wù)器是一個(gè)獨(dú)立于SQL Server數(shù)據(jù)庫的服務(wù)器,所以,其性能會(huì)比遠(yuǎn)程服務(wù)器配置模式高的多,而且安全性也有所保障。
如鏈接服務(wù)器可以以相同的方式確定不同的數(shù)據(jù)源。如果是遠(yuǎn)程服務(wù)器模式,則在客戶端之能夠鏈接到SQL Server數(shù)據(jù)庫。但是,如果管理員采用了鏈接服務(wù)器的話,那么遠(yuǎn)程客戶端不僅可以訪問SQL Server數(shù)據(jù)庫;而且還可以訪問其他數(shù)據(jù)源,如Oracle、Acess等數(shù)據(jù)庫。當(dāng)管理員需要實(shí)現(xiàn)數(shù)據(jù)遷移,把其他數(shù)據(jù)庫中的數(shù)據(jù)遷移到SQL Server數(shù)據(jù)庫中,將變得非常有用。而且,在鏈接服務(wù)器模式下,管理員還可以對(duì)企業(yè)內(nèi)的異類數(shù)據(jù)源發(fā)出分布式查詢、更新等操作。
所以說,鏈接服務(wù)器模式在性能上,比遠(yuǎn)程服務(wù)器模式更勝一籌。那么在安全性上,其又有什么杰出表現(xiàn)呢?
二、登陸名映射提高鏈接服務(wù)的安全性。
如果客戶端通過鏈接服務(wù)器訪問遠(yuǎn)程數(shù)據(jù)庫時(shí),發(fā)送服務(wù)器必須提供登陸名和密碼以代表自己連接到接收服務(wù)器。而這個(gè)過程,是通過SQL Server數(shù)據(jù)庫系統(tǒng)存儲(chǔ)過程實(shí)現(xiàn)的。這種技術(shù),就叫做登錄名映射。
鏈接服務(wù)器登錄名映射為特定的鏈接服務(wù)器和本地登錄名建立遠(yuǎn)程登陸名和遠(yuǎn)程密碼。在客戶端連接到鏈接服務(wù)器以執(zhí)行查詢或者存儲(chǔ)過程時(shí),數(shù)據(jù)庫會(huì)查找正在執(zhí)行查詢或者存儲(chǔ)過程的當(dāng)前登錄名的登陸名映射。如果找到一個(gè)合適的登陸名映射時(shí),則數(shù)據(jù)庫在連接到鏈接服務(wù)器時(shí)會(huì)發(fā)送相應(yīng)的遠(yuǎn)程登陸名和密碼。這看起來好像是在繞口令,比較難以理解。這也正常。筆者剛接觸到這個(gè)鏈接服務(wù)器時(shí),也想了幾個(gè)小時(shí),才弄明白什么叫做登陸名映射。其實(shí)我們可以簡單的理解。即到客戶端鏈接到鏈接服務(wù)器時(shí),鏈接服務(wù)器需要先對(duì)客戶端的身份進(jìn)行驗(yàn)證。而其驗(yàn)證的依據(jù)就是遠(yuǎn)程數(shù)據(jù)庫是與鏈接服務(wù)器建立了登陸名映射。也就說,鏈接服務(wù)器在其中起著“保安”的作用,會(huì)先確定訪問者的合法身份。
可見,通過登陸名映射可以在很大程度上提高遠(yuǎn)程數(shù)據(jù)庫服務(wù)的安全性。
三、鏈接服務(wù)器的實(shí)現(xiàn)方式。
鏈接服務(wù)器的部署是非常簡單的。在SQLServer的管理控制臺(tái)中,只需要通過幾個(gè)簡單的步驟即可。不過在談具體的配置之前,還必須先要來了解一個(gè)新內(nèi)容,即OLE數(shù)據(jù)庫接口。
上面我們?cè)谡劦芥溄臃⻊?wù)器性能的時(shí)候,說過管理員可以通過鏈接服務(wù)器來訪問呢不同的數(shù)據(jù)源。其實(shí),這都是OLE數(shù)據(jù)庫接口的功勞。OLE數(shù)據(jù)庫訪問接口是用來管理特定數(shù)據(jù)源并且與其進(jìn)行交互的工具。其實(shí),他是一個(gè)DLL文件,即動(dòng)態(tài)鏈接庫文件。這個(gè)文件往往不能夠單獨(dú)運(yùn)行,但是它允許應(yīng)用程序共享執(zhí)行特殊任務(wù)所必須的代碼和其他內(nèi)容。而OLE數(shù)據(jù)源標(biāo)示可通過OLE來訪問特定的數(shù)據(jù)庫。有了OLE的幫助,使得鏈接服務(wù)器不僅可以訪問各大品牌的數(shù)據(jù)庫,還可以訪問一些非數(shù)據(jù)庫的數(shù)據(jù)文件,如Excel、帶有固定格式的文本文件等等。
而且,OLE接口參數(shù)還可以對(duì)某些操作進(jìn)行控制。因?yàn)椴煌臄?shù)據(jù)庫都對(duì)標(biāo)準(zhǔn)的SQL語句進(jìn)行了擴(kuò)充。也就是說,某些特殊的語法只有特定的數(shù)據(jù)庫系統(tǒng)才能夠執(zhí)行。為了保證SQL語句的通用性,可以在OLE接口參數(shù)中進(jìn)行一些配置,來防止管理員執(zhí)行一些不兼容的SQL語句。如在OLE接口中,有一個(gè)NestedQueries的參數(shù)。它主要用來控制是否允許在From子句中潛套Select語句。如果把這個(gè)參數(shù)設(shè)置為0,就表示不允許在From子句中使用嵌套的Select語句。如果非0,則表明訪問接口允許在From子句中使用嵌套的Select語句。筆者有時(shí)候經(jīng)常利用這個(gè)參數(shù)來對(duì)一些操作進(jìn)行控制。如可以通過這個(gè)選項(xiàng),使得數(shù)據(jù)庫管理員能夠?qū)⒛承┎樵兾薪o需要在From子句中嵌套Select語句的訪問接口。
通過接口還可以控制操作者是否有更新權(quán)限,即通過鏈接服務(wù)器訪問遠(yuǎn)程數(shù)據(jù)庫時(shí),能否對(duì)數(shù)據(jù)庫進(jìn)行更新操作。如要進(jìn)行這個(gè)控制,則可以使用NonTransactedUpdates參數(shù)。如果這個(gè)參數(shù)為0,則允許進(jìn)行更新。反之,則不允許更新。不過如果啟用了更新的話,需要注意一個(gè)問題。由于訪問接口不支持事務(wù),則通過鏈接服務(wù)器更新的數(shù)據(jù),將不可恢復(fù)。
鏈接服務(wù)器可以采用SQL Server自帶的OLE接口,也可以采用第三方的接口。但是,如果采用第三方的OLE數(shù)據(jù)庫接口的話,需要注意運(yùn)行SQL Server服務(wù)的帳戶必須具有對(duì)安裝訪問接口的目錄以及所有子目錄具有讀取權(quán)限和執(zhí)行權(quán)限。在大部分情況下,筆者建議還是采用數(shù)據(jù)庫自帶的OLE接口,以減少配置的工作量。
四、如何定義鏈接服務(wù)器。
在SQL Server數(shù)據(jù)庫中,鏈接服務(wù)器定義主要有兩種方式。一是通過數(shù)據(jù)庫自帶的存儲(chǔ)過程來進(jìn)行定義;二是通過管理控制臺(tái)來進(jìn)行部署。
筆者比較喜歡采用系統(tǒng)存儲(chǔ)過程和目錄視圖來管理鏈接服務(wù)器。如可以通過SP-addlinkedserver存儲(chǔ)過程來創(chuàng)建服務(wù)器定義。如果需要查看鏈接服務(wù)器的信息,則可以通過SYS.SERVERS系統(tǒng)目錄視圖進(jìn)行查詢。如果要?jiǎng)h除鏈接服務(wù)的話,也可以通過存儲(chǔ)過程來刪除。
如果初學(xué)者覺得通過存儲(chǔ)過程與視圖的方式不夠直觀,則可以通過數(shù)據(jù)庫的管理控制臺(tái)來進(jìn)行鏈接服務(wù)器的定義。這個(gè)步驟也很簡單。在數(shù)據(jù)庫的對(duì)象資源管理器中,右鍵單擊服務(wù)器對(duì)象,選擇新建,再選擇鏈接服務(wù)器即可。如果要?jiǎng)h除連接服務(wù),則選中需要?jiǎng)h除的鏈接服務(wù)器,選擇刪除即可。通常情況下,不需要對(duì)OLE的接口參數(shù)進(jìn)行調(diào)整。如果對(duì)于性能、安全等要求比較高,或者有多個(gè)管理員同時(shí)管理數(shù)據(jù)庫的時(shí)候,則可以通過對(duì)OLE部分參數(shù)進(jìn)行調(diào)整。如筆者上面談到的控制是否允許更新等相關(guān)參數(shù)。對(duì)于初學(xué)者來說,筆者不建議對(duì)這些參數(shù)進(jìn)行調(diào)整。因?yàn)槿绻{(diào)整不得法的話,會(huì)導(dǎo)致鏈接服務(wù)器無法正常工作。而且這個(gè)錯(cuò)誤很難排查。
鏈接服務(wù)器除了可以幫助管理員輕松訪問不同的數(shù)據(jù)源之外,在分布式查詢中也特別有用。當(dāng)用戶利用客戶端應(yīng)用程序通過鏈接服務(wù)器執(zhí)行分布式查詢時(shí),數(shù)據(jù)庫將會(huì)分析鏈接服務(wù)器傳送過來的語句。行集請(qǐng)求的形式可以是對(duì)該訪問接口執(zhí)行查詢或者從該訪問接口直接打開基表。
分享:怎樣優(yōu)化SQLServer數(shù)據(jù)庫服務(wù)器內(nèi)存配置怎樣優(yōu)化SQLServer數(shù)據(jù)庫服務(wù)器內(nèi)存配置 2009-05-28 00:37 農(nóng)業(yè)銀行總行1998年以來正式推廣了新版網(wǎng)絡(luò)版綜合業(yè)務(wù)統(tǒng)計(jì)信息系統(tǒng),該系統(tǒng)是基于WindowsNT4.0平臺(tái),采用客戶/服務(wù)器模式,以Microsoft SQL Server為基礎(chǔ)建立起來的大型數(shù)據(jù)庫應(yīng)用程序,系統(tǒng)界面友
- sql 語句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫教程推薦
- SQL Server2000安裝時(shí)出現(xiàn)錯(cuò)誤及解決
- 解讀SQL Server與Access語法小差異
- 怎樣利用SQL Server復(fù)制技術(shù)實(shí)現(xiàn)數(shù)據(jù)同步更新
- 關(guān)于sql server批量插入和更新的兩種解決方案
- SQLSERVER2008中CTE的Split與CLR的性能比較
- SQL Server 2008中有關(guān)XML的新功能
- MSSQL 2008不能用IP登錄問題如何解決
- 詳細(xì)解析SQL Server安裝sp4補(bǔ)丁報(bào)錯(cuò)的方法
- sql中case語句的用法淺談
- 通過JDBC連接DB2數(shù)據(jù)庫技巧
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-淺談SQL Server中鏈接服務(wù)器將替代遠(yuǎn)程服務(wù)器
。