欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種用于隔離多租戶數(shù)據(jù)的系統(tǒng)、設(shè)備和方法與流程

文檔序號:11276435閱讀:231來源:國知局
一種用于隔離多租戶數(shù)據(jù)的系統(tǒng)、設(shè)備和方法與流程
本申請涉及計算機(jī)
技術(shù)領(lǐng)域
,尤其涉及用于隔離多租戶數(shù)據(jù)的系統(tǒng)、設(shè)備和方法。
背景技術(shù)
:在互聯(lián)網(wǎng)應(yīng)用中,為了更好地利用資源,更好地維護(hù)管理及降低開發(fā)成本,人們通常會對底層資源、基礎(chǔ)業(yè)務(wù)邏輯或者一些行業(yè)解決方案進(jìn)行封裝而形成一個業(yè)務(wù)平臺,從而以服務(wù)的形式提供給各個接入方。在這種情況下,為了數(shù)據(jù)安全和數(shù)據(jù)的互不干擾,必需保證每個接入方只能查看和操作自己的數(shù)據(jù),因此數(shù)據(jù)隔離成為這樣的平臺必需具備的能力。在現(xiàn)有的技術(shù)方案中,通常采用在表中添加一個枚舉字段來標(biāo)識數(shù)據(jù)身份或者事先配置好每個租戶標(biāo)識對應(yīng)的數(shù)據(jù)庫的方式來對數(shù)據(jù)進(jìn)行隔離。然而,這樣的數(shù)據(jù)隔離方式具有安全性差、擴(kuò)展困難、維護(hù)成本高、查詢數(shù)據(jù)效率低等缺點。技術(shù)實現(xiàn)要素:本申請的目的在于提供一種用于隔離多租戶數(shù)據(jù)的系統(tǒng)、設(shè)備和方法,來解決
背景技術(shù)
部分提出的技術(shù)問題。在本申請的一個方面,提出了一種用于隔離多租戶數(shù)據(jù)的方法,所述方法包括:接收指示租戶與數(shù)據(jù)庫之間的對應(yīng)關(guān)系的映射信息;針對所述映射信息中包括的每個數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫連接池;基于所述映射信息建立映射表,所述映射表中的每條記錄指示所述映射信息中包括的每個租戶與所創(chuàng)建的數(shù)據(jù)庫連接池之間的對應(yīng)關(guān)系;接收租戶提出的數(shù)據(jù)訪問請求,并對所述數(shù)據(jù)訪問請求進(jìn)行解析以獲得所述租戶的身份標(biāo)識;根據(jù)所述租戶的身份標(biāo)識從所述映射表中獲取與所述 租戶對應(yīng)的數(shù)據(jù)庫連接池;以及通過所獲取的數(shù)據(jù)庫連接池訪問與所述租戶對應(yīng)的數(shù)據(jù)庫??蛇x地,所述方法還包括接收變更信息并基于所述變更信息更新所述映射表??蛇x地,所述接收變更信息并基于所述變更信息更新所述映射表包括:在所述變更信息指示要增加新租戶的情況下,針對所述變更信息中所指定的目標(biāo)數(shù)據(jù)庫建立數(shù)據(jù)庫連接池,并且將所述新租戶的身份標(biāo)識和針對所述目標(biāo)數(shù)據(jù)庫創(chuàng)建的數(shù)據(jù)庫連接池添加到所述映射表中,其中,所述目標(biāo)數(shù)據(jù)庫為所述變更信息中所指定的所述新租戶要訪問的數(shù)據(jù)庫??蛇x地,所述接收變更信息并基于所述變更信息更新所述映射表包括:在所述變更信息指示要刪除租戶的情況下,關(guān)閉對應(yīng)于所述變更信息中指定的要刪除的租戶的數(shù)據(jù)庫連接池,并從所述映射表中刪除與該租戶相關(guān)的記錄。可選地,所述接收變更信息并基于所述變更信息更新所述映射表包括:在所述變更信息指示要修改租戶與數(shù)據(jù)庫之間的對應(yīng)關(guān)系的情況下,將所述映射表中與目標(biāo)租戶有關(guān)的記錄中的數(shù)據(jù)庫連接池修改為目標(biāo)數(shù)據(jù)庫連接池,其中,所述目標(biāo)租戶為所述變更信息中所指定的要執(zhí)行對應(yīng)關(guān)系變更的租戶,所述目標(biāo)數(shù)據(jù)庫連接池為在執(zhí)行所述變更后所述目標(biāo)租戶將對應(yīng)的數(shù)據(jù)庫連接池。在本申請的另一方面,提供了一種用于隔離多租戶數(shù)據(jù)的設(shè)備,所述設(shè)備包括:通信模塊,被配置成接收指示租戶與數(shù)據(jù)庫之間的對應(yīng)關(guān)系的映射信息;數(shù)據(jù)源分配模塊,被配置成針對所述映射信息中包括的每個數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫連接池,并基于所述映射信息建立映射表,其中,所述映射表中的每條記錄指示所述映射信息中包括的每個租戶與所創(chuàng)建的數(shù)據(jù)庫連接池之間的對應(yīng)關(guān)系;請求解析模塊,被配置成接收租戶提出的數(shù)據(jù)訪問請求并對所述數(shù)據(jù)訪問請求進(jìn)行解析以獲得所述租戶的身份標(biāo)識,并且根據(jù)所述租戶的身份標(biāo)識從所述映射表中獲取與該租戶對應(yīng)的數(shù)據(jù)庫連接池;以及數(shù)據(jù)庫訪問模塊,被配置成通過所述請求解析模塊所獲取的數(shù)據(jù)庫連接池訪問與所述租戶對 應(yīng)的數(shù)據(jù)庫??蛇x地,所述數(shù)據(jù)源分配模塊進(jìn)一步被配置成基于來自所述通信模塊的變更信息來更新所述映射表。可選地,所述數(shù)據(jù)源分配模塊進(jìn)一步被配置成:在所述變更信息指示增加新租戶時,針對所述變更信息中所指定的目標(biāo)數(shù)據(jù)庫建立數(shù)據(jù)庫連接池,并且將所述新租戶的身份標(biāo)識和針對所述目標(biāo)數(shù)據(jù)庫創(chuàng)建的數(shù)據(jù)庫連接池添加到所述映射表中,其中,所述目標(biāo)數(shù)據(jù)庫為所述變更信息中所指定的所述新租戶要訪問的數(shù)據(jù)庫??蛇x地,所述數(shù)據(jù)源分配模塊進(jìn)一步被配置成:在所述變更信息指示刪除租戶時,關(guān)閉對應(yīng)于所述變更信息中所指定的要刪除的租戶的數(shù)據(jù)庫連接池,并且從所述映射表中刪除與該租戶相關(guān)的記錄。可選地,所述數(shù)據(jù)源分配模塊進(jìn)一步被配置成:當(dāng)所述變更信息指示要修改租戶與數(shù)據(jù)庫之間的對應(yīng)關(guān)系時,將所述映射表中與目標(biāo)租戶有關(guān)的記錄中的數(shù)據(jù)庫連接池修改為目標(biāo)數(shù)據(jù)庫連接池,其中,所述目標(biāo)租戶為所述變更信息中所指定的要執(zhí)行對應(yīng)關(guān)系變更的租戶,所述目標(biāo)數(shù)據(jù)庫連接池為在執(zhí)行所述變更后所述目標(biāo)租戶將對應(yīng)的數(shù)據(jù)庫連接池。在本申請的又一方面,提供了一種用于隔離多租戶數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括:如上所述的用于隔離多租戶數(shù)據(jù)的設(shè)備;以及控制模塊,被配置成接收用戶輸入的所述映射信息,并且將所述映射信息傳送至所述用于隔離多租戶數(shù)據(jù)的設(shè)備。根據(jù)本申請的用于隔離多租戶數(shù)據(jù)的系統(tǒng)、設(shè)備和方法利用控制模塊對于多個租戶與對應(yīng)數(shù)據(jù)庫之間的映射關(guān)系進(jìn)行集中管理,使得租戶數(shù)據(jù)都映射到庫,因而開發(fā)簡單、易于維護(hù)。根據(jù)本申請的用于隔離多租戶數(shù)據(jù)的系統(tǒng)、設(shè)備和方法通過數(shù)據(jù)源分配模塊創(chuàng)建與各租戶對應(yīng)的數(shù)據(jù)庫的數(shù)據(jù)庫連接池,以實現(xiàn)各租戶數(shù)據(jù)的有效隔離。并且,通過數(shù)據(jù)源分配模塊能夠方便地增加、刪除或修改租戶對應(yīng)的數(shù)據(jù)庫連接池,從而能夠通過簡單操作來實現(xiàn)數(shù)據(jù)庫的動態(tài)伸縮。附圖說明通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:圖1是本申請可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;圖2示出了根據(jù)本申請實施例的用于隔離多租戶數(shù)據(jù)的設(shè)備的示意性框圖;圖3示出了根據(jù)本申請實施例的用于隔離多租戶數(shù)據(jù)的方法的流程圖;圖4示出了根據(jù)本申請實施例的用于隔離多租戶數(shù)據(jù)的方法變型例的流程圖;圖5示出了根據(jù)本申請實施例的用于隔離多租戶數(shù)據(jù)的方法變型例的流程圖;圖6示出了根據(jù)本申請實施例的用于隔離多租戶數(shù)據(jù)的方法變型例的流程圖;圖7是適于用來實現(xiàn)本申請實施例的用于隔離多租戶數(shù)據(jù)的系統(tǒng)的計算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。具體實施方式下面結(jié)合附圖和實施例對本申請作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本申請。圖1示出了可以應(yīng)用本申請的用于隔離多租戶數(shù)據(jù)的系統(tǒng)、設(shè)備或方法的實施例的示例性系統(tǒng)架構(gòu)100。如圖1所示,系統(tǒng)架構(gòu)100可以包括控制服務(wù)器101,應(yīng)用服務(wù)器1021~102n,數(shù)據(jù)庫服務(wù)器1031~103n和網(wǎng)絡(luò)104~105。網(wǎng)絡(luò)104~105分別用以在控制服務(wù)器101與應(yīng)用服務(wù)器1021~102n以及應(yīng)用服務(wù)器1021~102n與數(shù)據(jù)庫服務(wù)器1031~103n之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò) 104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等??刂品?wù)器101用于管理系統(tǒng)100的所有租戶與對應(yīng)數(shù)據(jù)庫之間的映射關(guān)系。租戶是指使用應(yīng)用服務(wù)器1021~102n的應(yīng)用程序的客戶??刂品?wù)器101設(shè)置有控制模塊??刂颇K被配置成接收數(shù)據(jù)庫管理人員輸入的操作指令,并且基于該操作指令中包含的應(yīng)用服務(wù)器的標(biāo)識信息將該操作指令傳送至對應(yīng)的應(yīng)用服務(wù)器。例如,假設(shè)數(shù)據(jù)庫管理人員通過控制模塊輸入了用于針對應(yīng)用服務(wù)器1021添加租戶的操作指令,則將數(shù)據(jù)庫管理人員發(fā)出的該指令發(fā)送至應(yīng)用服務(wù)器1021。類似地,假設(shè)數(shù)據(jù)庫管理人員通過控制模塊輸入了用于針對應(yīng)用服務(wù)器1022添加租戶的操作指令,則將數(shù)據(jù)庫管理人員發(fā)出的該指令發(fā)送至應(yīng)用服務(wù)器1022。應(yīng)用服務(wù)器1021~102n上可以安裝有各種通訊客戶端應(yīng)用,例如網(wǎng)頁瀏覽器應(yīng)用、購物類應(yīng)用、搜索類應(yīng)用、即時通信工具、郵箱客戶端、社交平臺軟件等。在應(yīng)用服務(wù)器1021~102n上執(zhí)行上述應(yīng)用時,可以通過網(wǎng)絡(luò)105訪問作為應(yīng)用服務(wù)器1021~102n的數(shù)據(jù)源的相應(yīng)數(shù)據(jù)庫服務(wù)器1031~103n,并從數(shù)據(jù)庫服務(wù)器1031~103n接收作為上述應(yīng)用的執(zhí)行結(jié)果的數(shù)據(jù)??刂品?wù)器101、應(yīng)用服務(wù)器1021~102n以及數(shù)據(jù)庫服務(wù)器1031~103n可以是支持?jǐn)?shù)據(jù)庫查詢的各種電子設(shè)備,包括但不限于臺式計算機(jī)、平板電腦、膝上型便攜計算機(jī)等等。需要說明的是,本申請實施例所提供的用于隔離多租戶數(shù)據(jù)的方法一般由應(yīng)用服務(wù)器1021~102n執(zhí)行,相應(yīng)地,用于隔離多租戶數(shù)據(jù)的設(shè)備一般設(shè)置于應(yīng)用服務(wù)器1021~102n中。應(yīng)該理解,圖1中的應(yīng)用服務(wù)器、網(wǎng)絡(luò)和數(shù)據(jù)庫服務(wù)器的數(shù)目僅僅是示意性的。根據(jù)實現(xiàn)需要,可以具有任意數(shù)目的應(yīng)用服務(wù)器、網(wǎng)絡(luò)和數(shù)據(jù)庫服務(wù)器。以下參照附圖2描述根據(jù)本申請實施例的用于隔離多租戶數(shù)據(jù)的設(shè)備200。在本申請中,為了保證應(yīng)用服務(wù)器各租戶的數(shù)據(jù)之間的有效隔離, 在各應(yīng)用服務(wù)器102中均配置有用以隔離多租戶數(shù)據(jù)的設(shè)備200。作為示例,以下僅說明設(shè)置于應(yīng)用服務(wù)器1021中的設(shè)備200,其它應(yīng)用服務(wù)器中的設(shè)備200具有類似的構(gòu)造,本文不再贅述。如圖2所示,設(shè)備200包括通信模塊201、數(shù)據(jù)源分配模塊202、請求解析模塊203和數(shù)據(jù)庫訪問模塊204。通信模塊201接收數(shù)據(jù)庫管理人員所設(shè)置的用于指示租戶與數(shù)據(jù)庫之間的對應(yīng)關(guān)系的映射信息。通信模塊201與控制服務(wù)器101的控制模塊通信,以將數(shù)據(jù)庫管理人員所設(shè)置的關(guān)于該通信模塊201所在的應(yīng)用服務(wù)器的租戶與數(shù)據(jù)庫之間的對應(yīng)關(guān)系的映射信息從控制服務(wù)器101拉取到本應(yīng)用服務(wù)器,并提交給數(shù)據(jù)源分配模塊202。數(shù)據(jù)源分配模塊202管理其所在的應(yīng)用服務(wù)器的租戶與數(shù)據(jù)庫之間的映射關(guān)系。數(shù)據(jù)源分配模塊202針對所接收到的映射信息中包括的每個數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫連接池,并基于該映射信息建立映射表。該述映射表中的每條記錄指示映射信息中包括的每個租戶與所創(chuàng)建的數(shù)據(jù)庫連接池之間的對應(yīng)關(guān)系。數(shù)據(jù)庫連接池的基本原理是在內(nèi)部對象池中維護(hù)一定數(shù)量的數(shù)據(jù)庫連接,并對外暴露數(shù)據(jù)庫連接獲取和返回方法。數(shù)據(jù)庫連接池負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫連接,它允許應(yīng)用系統(tǒng)重復(fù)使用一個現(xiàn)有的數(shù)據(jù)庫連接,而不是重建一個數(shù)據(jù)庫連接,從而避免了頻繁創(chuàng)建、釋放連接引起的大量性能開銷。數(shù)據(jù)庫連接池的建立、數(shù)據(jù)源分配策略的管理以及數(shù)據(jù)庫連接池的關(guān)閉屬于本領(lǐng)域的技術(shù)人員已知的技術(shù),因而此處不再贅述。在本申請的一個實施例中,數(shù)據(jù)源分配模塊202還可以基于從通信模塊201接收到的變更信息來更新所建立的映射表。在本申請的一個實施例中,假定數(shù)據(jù)庫管理人員希望針對應(yīng)用服務(wù)器1021增加新租戶ua并且與新租戶ua對應(yīng)的數(shù)據(jù)庫為數(shù)據(jù)庫服務(wù)器1031中的數(shù)據(jù)庫da。在這種情況下,在接收到數(shù)據(jù)庫管理人員輸入的指令之后,數(shù)據(jù)源分配模塊202針對數(shù)據(jù)庫da建立數(shù)據(jù)庫連接池,并且將該新租戶ua的身份標(biāo)識和針對數(shù)據(jù)庫da創(chuàng)建的數(shù)據(jù)庫連接池添加到映射表中。在本申請的另一實施例中,假定數(shù)據(jù)庫管理人員希望刪除應(yīng)用服務(wù)器1021的租戶ub。在這種情況下,在接收到數(shù)據(jù)庫管理人員輸入的指令之后,數(shù)據(jù)源分配模塊202關(guān)閉對應(yīng)于租戶ub的數(shù)據(jù)庫連接池,并且從映射表中刪除與租戶ub相關(guān)的記錄。在本申請的又一實施例中,假定數(shù)據(jù)庫管理人員希望將與應(yīng)用服務(wù)器1021的租戶ua對應(yīng)的數(shù)據(jù)庫修改為數(shù)據(jù)庫服務(wù)器1031中的數(shù)據(jù)庫db。在這種情況下,在接收到數(shù)據(jù)庫管理人員發(fā)出的指令之后,數(shù)據(jù)源分配模塊202將映射表中與租戶ua有關(guān)的記錄中的數(shù)據(jù)庫連接池修改為數(shù)據(jù)庫db的數(shù)據(jù)庫連接池。請求解析模塊203接收租戶提出的數(shù)據(jù)訪問請求,并對所接收到的數(shù)據(jù)訪問請求進(jìn)行解析,以獲得租戶的身份標(biāo)識。然后,請求解析模塊203將所獲得的租戶的身份標(biāo)識提交給數(shù)據(jù)源分配模塊202。數(shù)據(jù)源分配模塊202根據(jù)租戶的身份標(biāo)識從映射表中獲取與該租戶對應(yīng)的數(shù)據(jù)庫連接池的信息,并將所獲得的數(shù)據(jù)庫連接池信息轉(zhuǎn)交給請求解析模塊203。請求解析模塊203將所接收到的數(shù)據(jù)訪問請求以及所獲得的數(shù)據(jù)庫連接池信息提交給數(shù)據(jù)庫訪問模塊204。數(shù)據(jù)庫訪問模塊204通過諸如java數(shù)據(jù)庫連接(javadatabaseconnectivity,jdbc)或開放數(shù)據(jù)庫互連(opendatabaseconnectivity,odbc)的數(shù)據(jù)庫連接或者使用封裝有jdbc或odbc數(shù)據(jù)庫連接的持久層框架,將所接收到的數(shù)據(jù)訪問請求以及所獲得的數(shù)據(jù)庫連接池信息傳遞給相應(yīng)的數(shù)據(jù)庫執(zhí)行,并將結(jié)果返回給租戶。下面參照圖3說明根據(jù)本申請實施例的用于隔離多租戶數(shù)據(jù)的方法。如圖3所示,在步驟301中,接收指示租戶與數(shù)據(jù)庫之間的對應(yīng)關(guān)系的映射信息。設(shè)備200的通信模塊201不斷從控制服務(wù)器101同步該設(shè)備200所在的應(yīng)用服務(wù)器102的租戶與數(shù)據(jù)庫之間的映射關(guān)系,并將所接收到的關(guān)于租戶與數(shù)據(jù)庫之間的映射關(guān)系的映射信息傳送至數(shù)據(jù)源分配模塊202。在步驟302中,針對所接收到的映射信息中包括的每個數(shù)據(jù)庫創(chuàng) 建數(shù)據(jù)庫連接池。數(shù)據(jù)源分配模塊202基于所接收到的映射信息創(chuàng)建該映射信息中所指定的所有數(shù)據(jù)庫的數(shù)據(jù)庫連接池。例如,假定數(shù)據(jù)庫管理人員在控制模塊中指定了租戶ua和租戶ub分別訪問數(shù)據(jù)庫服務(wù)器1031中的數(shù)據(jù)庫da和db,則在步驟302中,數(shù)據(jù)源分配模塊202分別創(chuàng)建數(shù)據(jù)庫da和db的數(shù)據(jù)庫連接池。在步驟303中,基于映射信息建立映射表。數(shù)據(jù)源分配模塊202基于所接收到的映射信息建立映射表,該映射表中的每條記錄指示該映射信息中包括的每個租戶與步驟302中所創(chuàng)建的數(shù)據(jù)庫連接池之間的對應(yīng)關(guān)系。映射表中的每條記錄通常包括租戶的身份標(biāo)識、租戶要訪問的數(shù)據(jù)庫、關(guān)于租戶要訪問的數(shù)據(jù)庫的數(shù)據(jù)庫連接池的信息(也簡稱為數(shù)據(jù)庫連接池信息)。例如,在如上所述的數(shù)據(jù)庫管理人員在控制模塊中指定了租戶ua和租戶ub分別訪問數(shù)據(jù)庫服務(wù)器1031中的數(shù)據(jù)庫da和db的情況下,步驟303中所創(chuàng)建的映射表將如表1所示:租戶身份標(biāo)識(id)租戶要訪問的數(shù)據(jù)庫標(biāo)識數(shù)據(jù)庫連接池信息uada連接池aubdb連接池b表1在步驟304中,接收租戶提出的數(shù)據(jù)訪問請求,并對接收到的數(shù)據(jù)訪問請求進(jìn)行解析,以獲得該租戶的身份標(biāo)識。請求解析模塊203接收租戶提出的數(shù)據(jù)訪問請求,并對該數(shù)據(jù)訪問請求進(jìn)行解析以獲得該租戶的身份標(biāo)識。然后,請求解析模塊203將所獲得的租戶的身份標(biāo)識提交給數(shù)據(jù)源分配模塊202。在步驟305中,根據(jù)所獲得租戶的身份標(biāo)識從映射表中獲取與該租戶對應(yīng)的數(shù)據(jù)庫連接池。在接收到來自請求解析模塊203的租戶身份標(biāo)識之后,數(shù)據(jù)源分配模塊202基于所獲得的租戶身份標(biāo)識從步驟303中所建立的映射表中查找與該租戶對應(yīng)的數(shù)據(jù)庫連接池的信息,并將該數(shù)據(jù)庫連接池信息提交給數(shù)據(jù)庫訪問模塊204。在步驟306中,通過所獲取的數(shù)據(jù)庫連接池訪問與租戶對應(yīng)的數(shù)據(jù)庫。數(shù)據(jù)庫訪問模塊204通過諸如java數(shù)據(jù)庫連接(javadatabaseconnectivity,jdbc)或開放數(shù)據(jù)庫互連(opendatabaseconnectivity,odbc)的數(shù)據(jù)庫連接或者使用封裝有jdbc或odbc數(shù)據(jù)庫連接的持久層框架,將步驟304中接收到的數(shù)據(jù)訪問請求以及步驟305中獲得的數(shù)據(jù)庫連接池信息傳遞給相應(yīng)的數(shù)據(jù)庫執(zhí)行,并將結(jié)果返回給租戶。根據(jù)本申請的用于隔離多租戶數(shù)據(jù)的方法通過數(shù)據(jù)源分配模塊建立租戶與其要訪問的數(shù)據(jù)庫的數(shù)據(jù)庫連接池之間的映射表,并且在接收到租戶的數(shù)據(jù)庫訪問請求時從所述映射表獲取對應(yīng)的數(shù)據(jù)庫連接池,進(jìn)而通過所述數(shù)據(jù)庫連接池訪問其想要訪問的數(shù)據(jù)庫。因此,本申請的用于隔離多租戶數(shù)據(jù)的方法能夠更好地實現(xiàn)各租戶數(shù)據(jù)的隔離。此外,相較于傳統(tǒng)的數(shù)據(jù)隔離方法,本申請的用于隔離多租戶數(shù)據(jù)的方法還能夠容易地擴(kuò)展,實現(xiàn)動態(tài)伸縮,以下以3個變型例來具體說明。變型例1在該變型例中,數(shù)據(jù)庫管理人員希望針對應(yīng)用服務(wù)器增加新的租戶。作為示例,以下參照圖4描述針對應(yīng)用服務(wù)器1021增加新租戶ua的方法。如圖4所示,在步驟401中,通信模塊201接收數(shù)據(jù)庫管理人員輸入的針對應(yīng)用服務(wù)器1021增加新租戶ua的指令,該指令可以包含該新租戶ua的身份標(biāo)識以及其要訪問的數(shù)據(jù)庫(以下稱為目標(biāo)數(shù)據(jù)庫)的標(biāo)識。在步驟402中,數(shù)據(jù)源分配模塊202在接收到來自通信模塊201的該指令之后,針對該指令中指定的目標(biāo)數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫連接池,并且在映射表中添加關(guān)于該新租戶ua和新創(chuàng)建的數(shù)據(jù)庫連接池的記錄。在步驟403中,在接收到來自該新租戶ua的數(shù)據(jù)庫訪問請求時, 請求解析模塊203對該訪問請求進(jìn)行解析以獲得該新租戶的身份標(biāo)識,并將該身份標(biāo)識提交給數(shù)據(jù)源分配模塊202,然后,數(shù)據(jù)源分配模塊202從映射表中獲得對應(yīng)于該新租戶的數(shù)據(jù)庫連接池信息(在步驟402中所創(chuàng)建的數(shù)據(jù)庫連接池的信息),并通過該數(shù)據(jù)庫連接池訪問目標(biāo)數(shù)據(jù)庫。變型例2在該變型例中,數(shù)據(jù)庫管理人員希望針對應(yīng)用服務(wù)器刪除租戶。作為示例,以下參照圖5描述刪除應(yīng)用服務(wù)器1021的租戶ua的方法。如圖5所示,在步驟501中,通信模塊201接收數(shù)據(jù)庫管理人員輸入的用于刪除應(yīng)用服務(wù)器1021的租戶ua的指令,該指令可以包含要刪除的租戶ua的身份標(biāo)識。在步驟502中,數(shù)據(jù)源分配模塊202在接收到來自通信模塊201的指令之后,關(guān)閉映射表中的對應(yīng)于該指令中指定的要刪除的租戶ua的數(shù)據(jù)庫連接池,并從映射表中刪除與租戶ua相關(guān)的記錄。變型例3在該變型例中,數(shù)據(jù)庫管理人員希望修改租戶與數(shù)據(jù)庫之間的對應(yīng)關(guān)系。作為示例,以下參照圖6描述修改應(yīng)用服務(wù)器1021的租戶ua與數(shù)據(jù)庫服務(wù)器1031中的數(shù)據(jù)庫da之間的對應(yīng)關(guān)系的方法。如圖6所示,在步驟601中,通信模塊201接收到數(shù)據(jù)庫管理人員輸入的用于修改應(yīng)用服務(wù)器1021的租戶ua與數(shù)據(jù)庫服務(wù)器1031中的數(shù)據(jù)庫da之間的對應(yīng)關(guān)系的指令。該指令規(guī)定將數(shù)據(jù)庫服務(wù)器1031中的數(shù)據(jù)庫db修改為租戶ua的數(shù)據(jù)源,以下將數(shù)據(jù)庫db稱作目標(biāo)數(shù)據(jù)庫。在步驟602中,數(shù)據(jù)源分配模塊202在接收到來自通信模塊201的該指令之后,將映射表中與租戶ua有關(guān)的記錄中的數(shù)據(jù)庫連接池修改為目標(biāo)數(shù)據(jù)庫db的數(shù)據(jù)庫連接池。在步驟603中,在接收到租戶ua的數(shù)據(jù)庫訪問請求時,通過目標(biāo)數(shù)據(jù)庫db的數(shù)據(jù)庫連接池訪問目標(biāo)數(shù)據(jù)庫db。下面參考圖7,其示出了適于用來實現(xiàn)本申請實施例的用于隔離租戶數(shù)據(jù)的系統(tǒng)的計算機(jī)系統(tǒng)700的結(jié)構(gòu)示意圖。如圖7所示,計算機(jī)系統(tǒng)700包括中央處理單元(cpu)701,其可以根據(jù)存儲在只讀存儲器(rom)702中的程序或者從存儲部分708加載到隨機(jī)訪問存儲器(ram)703中的程序而執(zhí)行各種適當(dāng)?shù)膭幼骱吞幚?。在ram703中,還存儲有系統(tǒng)700操作所需的各種程序和數(shù)據(jù)。cpu701、rom702以及ram703通過總線704彼此相連。輸入/輸出(i/o)接口705也連接至總線704。以下部件連接至i/o接口705:包括鍵盤、鼠標(biāo)等的輸入部分706;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚聲器等的輸出部分707;包括硬盤等的存儲部分708;以及包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分709。通信部分709經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動器710也根據(jù)需要連接至i/o接口705??刹鹦督橘|(zhì)711,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲器等等,根據(jù)需要安裝在驅(qū)動器710上,以便于從其上讀出的計算機(jī)程序根據(jù)需要被安裝入存儲部分708。特別地,根據(jù)本公開的實施例,上文參考流程圖描述的過程可以被實現(xiàn)為計算機(jī)軟件程序。例如,本公開的實施例包括一種計算機(jī)程序產(chǎn)品,其包括有形地包含在機(jī)器可讀介質(zhì)上的計算機(jī)程序,所述計算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機(jī)程序可以通過通信部分709從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)711被安裝。在該計算機(jī)程序被中央處理單元(cpu)701執(zhí)行時,執(zhí)行本申請的方法中限定的上述功能。描述于本申請實施例中所涉及到的單元可以通過軟件的方式實現(xiàn),也可以通過硬件的方式來實現(xiàn)。所描述的單元也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括通信模塊、數(shù)據(jù)源分配模塊、請求解析模塊和數(shù)據(jù)庫訪問模塊等,其中,這些模塊的名稱在某種情況下并不構(gòu)成對該模塊本身的限定。作為另一方面,本申請還提供了一種非易失性計算機(jī)存儲介質(zhì),該非易失性計算機(jī)存儲介質(zhì)可以是上述實施例中所述裝置中所包含的非易失性計算機(jī)存儲介質(zhì);也可以是單獨存在,未裝配入終端中的非易失性計算機(jī)存儲介質(zhì)。上述非易失性計算機(jī)存儲介質(zhì)存儲有一個或 者多個程序,當(dāng)所述一個或者多個程序被一個設(shè)備執(zhí)行時,使得所述設(shè)備:接收指示租戶與數(shù)據(jù)庫之間的對應(yīng)關(guān)系的映射信息;針對所述映射信息中包括的每個數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫連接池;基于所述映射信息建立映射表,所述映射表中的每條記錄指示所述映射信息中包括的每個租戶與所創(chuàng)建的數(shù)據(jù)庫連接池之間的對應(yīng)關(guān)系;接收租戶提出的數(shù)據(jù)訪問請求,并對所述數(shù)據(jù)訪問請求進(jìn)行解析以獲得所述租戶的身份標(biāo)識;根據(jù)所述租戶的身份標(biāo)識從所述映射表中獲取與所述租戶對應(yīng)的數(shù)據(jù)庫連接池;以及通過所獲取的數(shù)據(jù)庫連接池訪問與所述租戶對應(yīng)的數(shù)據(jù)庫以上描述僅為本申請的較佳實施例以及對所運用技術(shù)原理的說明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時也應(yīng)涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
肇东市| 四平市| 华亭县| 延川县| 怀柔区| 永仁县| 涟源市| 渭南市| 庐江县| 涟水县| 革吉县| 五大连池市| 镇坪县| 土默特右旗| 平凉市| 民县| 宁波市| 德惠市| 四子王旗| 体育| 梓潼县| 砚山县| 开化县| 万州区| 东光县| 肇庆市| 德钦县| 高台县| 商水县| 绥棱县| 海兴县| 临澧县| 荆州市| 庐江县| 章丘市| 水富县| 什邡市| 东源县| 新蔡县| 长乐市| 新乡市|