專(zhuān)利名稱(chēng):一種基于云計(jì)算的數(shù)據(jù)訪問(wèn)方法和數(shù)據(jù)庫(kù)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及云計(jì)算領(lǐng)域,具體涉及一種基于云計(jì)算的數(shù)據(jù)訪問(wèn)方法和數(shù)據(jù)庫(kù)系統(tǒng)。
背景技術(shù):
云計(jì)算是一種新興的商業(yè)計(jì)算模型,該模型將計(jì)算任務(wù)分布在大量計(jì)算機(jī)構(gòu)成的資源池上,使各種應(yīng)用系統(tǒng)能夠根據(jù)需要獲取計(jì)算能力,存儲(chǔ)空間和各種軟件服務(wù)。目前, 網(wǎng)絡(luò)環(huán)境中數(shù)據(jù)訪問(wèn)和集成大都采用訪問(wèn)者直接和DBS (Database System,數(shù)據(jù)庫(kù)系統(tǒng)) 服務(wù)接口交互。這種交互方式會(huì)強(qiáng)迫使用人員在應(yīng)用系統(tǒng)內(nèi)部解決數(shù)據(jù)訪問(wèn)和集成問(wèn)題, 使管理者或管理機(jī)構(gòu)陷入數(shù)據(jù)庫(kù)連接、數(shù)據(jù)格式轉(zhuǎn)換等技術(shù)問(wèn)題之中,增加了管理自動(dòng)化程序開(kāi)發(fā)的復(fù)雜性和重復(fù)性。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是如何在云計(jì)算環(huán)境中打破應(yīng)用程序和數(shù)據(jù)庫(kù)的緊耦合,使數(shù)據(jù)訪問(wèn)在更廣闊的平臺(tái)上擴(kuò)展。為了解決上述問(wèn)題,本發(fā)明提供了一種基于云計(jì)算的數(shù)據(jù)訪問(wèn)方法,包括
當(dāng)收到云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令時(shí),用該指令中攜帶的數(shù)據(jù)庫(kù)元數(shù)據(jù)和云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)進(jìn)行匹配,確認(rèn)該指令要訪問(wèn)的數(shù)據(jù)庫(kù);解析所述數(shù)據(jù)庫(kù)訪問(wèn)指令得到結(jié)構(gòu)化查詢語(yǔ)言SQL指令;
生成數(shù)據(jù)庫(kù)連接字符串,定位到所確認(rèn)的數(shù)據(jù)庫(kù)中;然后執(zhí)行所述SQL指令,得到執(zhí)行結(jié)果;
將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后反饋給該云用戶。進(jìn)一步地,所述確定該指令要訪問(wèn)的數(shù)據(jù)庫(kù)的步驟后、解析數(shù)據(jù)庫(kù)訪問(wèn)指令得到 SQL指令的步驟前還包括
對(duì)所述云用戶的權(quán)限進(jìn)行驗(yàn)證;如果驗(yàn)證通過(guò),則根據(jù)所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限進(jìn)行解析數(shù)據(jù)庫(kù)訪問(wèn)指令得到SQL指令的步驟;如果沒(méi)有通過(guò),則向所述云用戶報(bào)告異常。進(jìn)一步地,云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)預(yù)存在一數(shù)據(jù)資源配置文檔中;
所述數(shù)據(jù)資源配置文檔中還包括各數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息;所述用戶驗(yàn)證信息包括第三方簽發(fā)的證書(shū)或該數(shù)據(jù)庫(kù)中各用戶的用戶名、密碼及數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限。進(jìn)一步地,對(duì)云用戶的權(quán)限進(jìn)行驗(yàn)證的步驟包括
根據(jù)所述數(shù)據(jù)庫(kù)訪問(wèn)指令中攜帶的用戶名和密碼,在所確認(rèn)的數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息中進(jìn)行匹配;能匹配成功則驗(yàn)證通過(guò),確定所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限;否則驗(yàn)證沒(méi)有通過(guò)。進(jìn)一步地,所述用戶驗(yàn)證信息預(yù)存在一角色映射文檔中。進(jìn)一步地,由云系統(tǒng)中的服務(wù)層接收應(yīng)用層中所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令并傳遞給云系統(tǒng)中的邏輯層,以及將數(shù)據(jù)格式轉(zhuǎn)換后的執(zhí)行結(jié)果返回給云用戶;由邏輯層完成確認(rèn)要訪問(wèn)的數(shù)據(jù)庫(kù)、云用戶的權(quán)限驗(yàn)證、解析得到SQL指令、以及執(zhí)行結(jié)果數(shù)據(jù)格式轉(zhuǎn)換的步驟;云系統(tǒng)中的數(shù)據(jù)鏈路層生成數(shù)據(jù)庫(kù)連接字符串,定位到實(shí)體數(shù)據(jù)庫(kù)中執(zhí)行所述 SQL指令,得到執(zhí)行結(jié)果。本發(fā)明還提供了一種基于云計(jì)算的數(shù)據(jù)庫(kù)系統(tǒng),包括 服務(wù)層模塊;
邏輯層模塊,用于當(dāng)所述服務(wù)層模塊收到云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令時(shí),用該指令中攜帶的數(shù)據(jù)庫(kù)元數(shù)據(jù)和云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)進(jìn)行匹配,確認(rèn)該指令要訪問(wèn)的數(shù)據(jù)庫(kù); 解析所述數(shù)據(jù)庫(kù)訪問(wèn)指令得到SQL指令;
數(shù)據(jù)鏈路層模塊,用于生成數(shù)據(jù)庫(kù)連接字符串,定位到所確認(rèn)的數(shù)據(jù)庫(kù)中;然后執(zhí)行所述SQL指令,得到執(zhí)行結(jié)果;
所述邏輯層模塊還用于將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后通過(guò)所述服務(wù)層模塊反饋給云用戶。進(jìn)一步地,所述邏輯層模塊包括
中間件配置模塊,用于保存云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù);
查詢信息提取模塊,用于當(dāng)所述服務(wù)層模塊收到云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令時(shí),用該指令中攜帶的數(shù)據(jù)庫(kù)元數(shù)據(jù)和所述中間件配置模塊保存的元數(shù)據(jù)進(jìn)行匹配,確認(rèn)該指令要訪問(wèn)的數(shù)據(jù)庫(kù);確認(rèn)后對(duì)所述云用戶的權(quán)限進(jìn)行驗(yàn)證;如果驗(yàn)證沒(méi)通過(guò)則通過(guò)所述服務(wù)層模塊向所述云用戶報(bào)告異常;
轉(zhuǎn)換模塊,用于當(dāng)所述查詢信息提取模塊驗(yàn)證通過(guò)時(shí),解析所述數(shù)據(jù)庫(kù)訪問(wèn)指令得到 SQL指令,以及將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后通過(guò)所述服務(wù)層模塊反饋給云用戶。進(jìn)一步地,所述中間件配置模塊還用于保存各數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息;所述用戶驗(yàn)證信息包括第三方簽發(fā)的證書(shū)或該數(shù)據(jù)庫(kù)中各用戶的用戶名、密碼及數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限;
所述查詢信息提取模塊對(duì)云用戶的權(quán)限進(jìn)行驗(yàn)證是指
所述查詢信息提取模塊根據(jù)所述數(shù)據(jù)庫(kù)訪問(wèn)指令中攜帶的用戶名和密碼,在所確認(rèn)的數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息中進(jìn)行匹配;能匹配成功則驗(yàn)證通過(guò),確定所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限;否則驗(yàn)證沒(méi)有通過(guò)。進(jìn)一步地,云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)預(yù)存在一數(shù)據(jù)資源配置文檔中;所述用戶驗(yàn)證信息預(yù)存在一角色映射文檔中;所述查詢信息提取模塊提供一角色映射器,來(lái)完成云用戶與角色映射文檔的匹配。本發(fā)明的有益效果是新的模型的提出,克服了因開(kāi)發(fā)標(biāo)準(zhǔn)和服務(wù)規(guī)范的改變而使系統(tǒng)變得不穩(wěn)定的缺陷,同時(shí)消除了服務(wù)生命周期管理所帶來(lái)的數(shù)據(jù)不一致性問(wèn)題,避免了各種應(yīng)用與環(huán)境中分布、異構(gòu)的數(shù)據(jù)庫(kù)直接連接,實(shí)現(xiàn)了信息訪問(wèn)和集成模型的平臺(tái)無(wú)關(guān)性,增強(qiáng)了管理自動(dòng)化系統(tǒng)的可移植性、健壯性,因而具有非常廣闊的應(yīng)用前景。
圖1是基于云計(jì)算的數(shù)據(jù)庫(kù)系統(tǒng)的示意框圖。
具體實(shí)施方式
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說(shuō)明。需要說(shuō)明的是,如果不沖突,本發(fā)明實(shí)施例以及實(shí)施例中的各個(gè)特征可以相互結(jié)合,均在本發(fā)明的保護(hù)范圍之內(nèi)。實(shí)施例一,一種基于云計(jì)算的數(shù)據(jù)訪問(wèn)方法,包括
當(dāng)收到云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令時(shí),用該指令中攜帶的數(shù)據(jù)庫(kù)元數(shù)據(jù)和云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)進(jìn)行匹配,確認(rèn)該指令要訪問(wèn)的數(shù)據(jù)庫(kù);解析所述數(shù)據(jù)庫(kù)訪問(wèn)指令得到SQL (Structured Query Language,結(jié)構(gòu)化查詢i吾言)指令;
生成數(shù)據(jù)庫(kù)連接字符串,定位到所確認(rèn)的數(shù)據(jù)庫(kù)中;然后執(zhí)行所述SQL指令,得到執(zhí)行結(jié)果;
將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后反饋給該云用戶。本實(shí)施例可以忽視底層數(shù)據(jù)庫(kù)實(shí)體的結(jié)構(gòu),不管是SQLServer,還是Orcal,MySQL 都可以在上述的邏輯層里進(jìn)行區(qū)分,然后在數(shù)據(jù)鏈接層對(duì)數(shù)據(jù)進(jìn)行訪問(wèn),而對(duì)外提供的服務(wù)接口都是統(tǒng)一的。本實(shí)施例中,如果所述數(shù)據(jù)庫(kù)訪問(wèn)指令是查詢數(shù)據(jù)的,則執(zhí)行結(jié)果為讀到的數(shù)據(jù); 如果訪問(wèn)指令是寫(xiě)數(shù)據(jù)或修改數(shù)據(jù)的,則執(zhí)行結(jié)果為表示成功或失敗的信息。本實(shí)施例中,所述確定該指令要訪問(wèn)的數(shù)據(jù)庫(kù)的步驟后、解析數(shù)據(jù)庫(kù)訪問(wèn)指令得到SQL指令的步驟前還可以包括
對(duì)所述云用戶的權(quán)限進(jìn)行驗(yàn)證;如果驗(yàn)證通過(guò),則根據(jù)所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限進(jìn)行解析數(shù)據(jù)庫(kù)訪問(wèn)指令得到SQL指令的步驟;如果沒(méi)有通過(guò),則向所述云用戶報(bào)告異常。本實(shí)施例中,云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)可以但不限于預(yù)存在一數(shù)據(jù)資源配置文檔中。本實(shí)施例中,所述數(shù)據(jù)資源配置文檔中還可以包括各數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息;所述用戶驗(yàn)證信息包括第三方簽發(fā)的證書(shū)或該數(shù)據(jù)庫(kù)中各用戶的用戶名、密碼及數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限;
對(duì)云用戶的權(quán)限進(jìn)行驗(yàn)證的步驟具體可以包括
根據(jù)所述數(shù)據(jù)庫(kù)訪問(wèn)指令中攜帶的用戶名和密碼,在所確認(rèn)的數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息中進(jìn)行匹配;能匹配成功則驗(yàn)證通過(guò),確定所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限;否則驗(yàn)證沒(méi)有通過(guò)。本實(shí)施例中,所述用戶驗(yàn)證信息可以但不限于預(yù)存在一角色映射文檔中;可提供一角色映射器,來(lái)完成云用戶與角色映射文檔的匹配。本實(shí)施例中,可由云系統(tǒng)中的服務(wù)層接收應(yīng)用層中所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令并傳遞給云系統(tǒng)中的邏輯層,以及將數(shù)據(jù)格式轉(zhuǎn)換后的執(zhí)行結(jié)果返回給云用戶;由邏輯層完成確認(rèn)要訪問(wèn)的數(shù)據(jù)庫(kù)、云用戶的權(quán)限驗(yàn)證、解析得到SQL指令、以及執(zhí)行結(jié)果數(shù)據(jù)格式轉(zhuǎn)換的步驟;云系統(tǒng)中的數(shù)據(jù)鏈路層生成數(shù)據(jù)庫(kù)連接字符串,定位到實(shí)體數(shù)據(jù)庫(kù)中執(zhí)行所述SQL指令,得到執(zhí)行結(jié)果反饋給邏輯層。云系統(tǒng)中的應(yīng)用層,主要是提供用戶服務(wù),是由應(yīng)用程序和API (Application Programming hterface,應(yīng)用程序編程接口)組成。其中, 應(yīng)用層是整個(gè)模型的體現(xiàn),可以通過(guò)在主流系統(tǒng)上定制的方式得到;服務(wù)接口層、邏輯層、 數(shù)據(jù)庫(kù)鏈接層這三層可以以第三方庫(kù)的形式發(fā)布到云計(jì)算平臺(tái)上。邏輯層從服務(wù)層接收到數(shù)據(jù)庫(kù)訪問(wèn)指令之后,鎖定角色映射文檔和數(shù)據(jù)資源配置文檔,由角色映射器解析數(shù)據(jù)資源配置文檔,獲取由第三方簽發(fā)的證書(shū)或用戶訪問(wèn)數(shù)據(jù)庫(kù)的用戶名和密碼,確定所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限。只有通過(guò)驗(yàn)證,才能獲取與用戶名、 密碼相對(duì)應(yīng)的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限。若用戶名、密碼或數(shù)據(jù)庫(kù)元數(shù)據(jù)任一項(xiàng)匹配不成功,系統(tǒng)拋
山巳齒
出升吊。本實(shí)施例的方法打破了傳統(tǒng)數(shù)據(jù)庫(kù)訪問(wèn)模式,用戶,程序開(kāi)發(fā)人員無(wú)需再在自己的應(yīng)用上指定所需要的數(shù)據(jù)庫(kù),實(shí)現(xiàn)數(shù)據(jù)連接,數(shù)據(jù)訪問(wèn),數(shù)據(jù)轉(zhuǎn)換與應(yīng)用無(wú)關(guān),可以更容易的擴(kuò)展應(yīng)用,進(jìn)而降低成本的效果。實(shí)施例二,一種基于云計(jì)算的數(shù)據(jù)庫(kù)系統(tǒng),如圖1所示,包括 服務(wù)層模塊;
邏輯層模塊,用于當(dāng)所述服務(wù)層模塊收到云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令時(shí),用該指令中攜帶的數(shù)據(jù)庫(kù)元數(shù)據(jù)和云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)進(jìn)行匹配,確認(rèn)該指令要訪問(wèn)的數(shù)據(jù)庫(kù); 解析所述數(shù)據(jù)庫(kù)訪問(wèn)指令得到SQL指令;
數(shù)據(jù)鏈路層模塊,用于生成數(shù)據(jù)庫(kù)連接字符串,定位到所確認(rèn)的數(shù)據(jù)庫(kù)中;然后執(zhí)行所述SQL指令,得到執(zhí)行結(jié)果;
所述邏輯層模塊還用于將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后通過(guò)所述服務(wù)層模塊反饋給云用戶。本實(shí)施例中,如果所述數(shù)據(jù)庫(kù)訪問(wèn)指令是查詢數(shù)據(jù)的,則執(zhí)行結(jié)果為讀到的數(shù)據(jù); 如果訪問(wèn)指令是寫(xiě)數(shù)據(jù)或修改數(shù)據(jù)的,則執(zhí)行結(jié)果為表示成功或失敗的信息。本實(shí)施例中,所述邏輯層模塊具體可以包括 中間件配置模塊,用于保存云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù);
查詢信息提取模塊,用于當(dāng)所述服務(wù)層模塊收到云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令時(shí),用該指令中攜帶的數(shù)據(jù)庫(kù)元數(shù)據(jù)和所述中間件配置模塊保存的元數(shù)據(jù)進(jìn)行匹配,確認(rèn)該指令要訪問(wèn)的數(shù)據(jù)庫(kù);確認(rèn)后對(duì)所述云用戶的權(quán)限進(jìn)行驗(yàn)證;如果驗(yàn)證沒(méi)通過(guò)則通過(guò)所述服務(wù)層模塊向所述云用戶報(bào)告異常;
轉(zhuǎn)換模塊,用于當(dāng)所述查詢信息提取模塊驗(yàn)證通過(guò)時(shí),解析所述數(shù)據(jù)庫(kù)訪問(wèn)指令得到 SQL指令,以及將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后通過(guò)所述服務(wù)層模塊反饋給云用戶。本實(shí)施例中,所述中間件配置模塊還可以用于保存各數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息;所述用戶驗(yàn)證信息包括第三方簽發(fā)的證書(shū)或該數(shù)據(jù)庫(kù)中各用戶的用戶名、密碼及數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限;
所述查詢信息提取模塊對(duì)云用戶的權(quán)限進(jìn)行驗(yàn)證具體可以是指 所述查詢信息提取模塊根據(jù)所述數(shù)據(jù)庫(kù)訪問(wèn)指令中攜帶的用戶名和密碼,在所確認(rèn)的數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息中進(jìn)行匹配;能匹配成功則驗(yàn)證通過(guò),確定所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限;否則驗(yàn)證沒(méi)有通過(guò)。本實(shí)施例中,云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)可以但不限于預(yù)存在一數(shù)據(jù)資源配置文檔中;所述用戶驗(yàn)證信息可以但不限于預(yù)存在一角色映射文檔中;所述查詢信息提取模塊可提供一角色映射器,來(lái)完成云用戶與角色映射文檔的匹配。本實(shí)施例中,服務(wù)層模塊主要是與應(yīng)用層交互,接收用戶的服務(wù)請(qǐng)求,并給出反饋;邏輯層模塊是核心,主要負(fù)責(zé)權(quán)限驗(yàn)證,解析SQL語(yǔ)句,數(shù)據(jù)庫(kù)動(dòng)態(tài)選擇,數(shù)據(jù)格式轉(zhuǎn)
7換;數(shù)據(jù)庫(kù)鏈接層,主要負(fù)責(zé)數(shù)據(jù)讀寫(xiě)、生成數(shù)據(jù)庫(kù)的鏈接字符串,以及以上幾層所需要的開(kāi)發(fā)庫(kù)。 當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.種基于云計(jì)算的數(shù)據(jù)訪問(wèn)方法,包括當(dāng)收到云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令時(shí),用該指令中攜帶的數(shù)據(jù)庫(kù)元數(shù)據(jù)和云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)進(jìn)行匹配,確認(rèn)該指令要訪問(wèn)的數(shù)據(jù)庫(kù);解析所述數(shù)據(jù)庫(kù)訪問(wèn)指令得到結(jié)構(gòu)化查詢語(yǔ)言SQL指令;生成數(shù)據(jù)庫(kù)連接字符串,定位到所確認(rèn)的數(shù)據(jù)庫(kù)中;然后執(zhí)行所述SQL指令,得到執(zhí)行結(jié)果;將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后反饋給該云用戶。
2.如權(quán)利要求1所述的方法,其特征在于,所述確定該指令要訪問(wèn)的數(shù)據(jù)庫(kù)的步驟后、 解析數(shù)據(jù)庫(kù)訪問(wèn)指令得到SQL指令的步驟前還包括對(duì)所述云用戶的權(quán)限進(jìn)行驗(yàn)證;如果驗(yàn)證通過(guò),則根據(jù)所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限進(jìn)行解析數(shù)據(jù)庫(kù)訪問(wèn)指令得到SQL指令的步驟;如果沒(méi)有通過(guò),則向所述云用戶報(bào)告異常。
3.如權(quán)利要求1所述的方法,其特征在于云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)預(yù)存在一數(shù)據(jù)資源配置文檔中;所述數(shù)據(jù)資源配置文檔中還包括各數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息;所述用戶驗(yàn)證信息包括第三方簽發(fā)的證書(shū)或該數(shù)據(jù)庫(kù)中各用戶的用戶名、密碼及數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限。
4.如權(quán)利要求3所述的方法,其特征在于,對(duì)云用戶的權(quán)限進(jìn)行驗(yàn)證的步驟包括根據(jù)所述數(shù)據(jù)庫(kù)訪問(wèn)指令中攜帶的用戶名和密碼,在所確認(rèn)的數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息中進(jìn)行匹配;能匹配成功則驗(yàn)證通過(guò),確定所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限;否則驗(yàn)證沒(méi)有通過(guò)。
5.如權(quán)利要求3所述的方法,其特征在于所述用戶驗(yàn)證信息預(yù)存在一角色映射文檔中。
6.如權(quán)利要求1到5中任一項(xiàng)所述的方法,其特征在于由云系統(tǒng)中的服務(wù)層接收應(yīng)用層中所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令并傳遞給云系統(tǒng)中的邏輯層,以及將數(shù)據(jù)格式轉(zhuǎn)換后的執(zhí)行結(jié)果返回給云用戶;由邏輯層完成確認(rèn)要訪問(wèn)的數(shù)據(jù)庫(kù)、云用戶的權(quán)限驗(yàn)證、解析得到SQL指令、以及執(zhí)行結(jié)果數(shù)據(jù)格式轉(zhuǎn)換的步驟;云系統(tǒng)中的數(shù)據(jù)鏈路層生成數(shù)據(jù)庫(kù)連接字符串,定位到實(shí)體數(shù)據(jù)庫(kù)中執(zhí)行所述SQL指令,得到執(zhí)行結(jié)果。
7.一種基于云計(jì)算的數(shù)據(jù)庫(kù)系統(tǒng),其特征在于,包括服務(wù)層模塊;邏輯層模塊,用于當(dāng)所述服務(wù)層模塊收到云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令時(shí),用該指令中攜帶的數(shù)據(jù)庫(kù)元數(shù)據(jù)和云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)進(jìn)行匹配,確認(rèn)該指令要訪問(wèn)的數(shù)據(jù)庫(kù); 解析所述數(shù)據(jù)庫(kù)訪問(wèn)指令得到SQL指令;數(shù)據(jù)鏈路層模塊,用于生成數(shù)據(jù)庫(kù)連接字符串,定位到所確認(rèn)的數(shù)據(jù)庫(kù)中;然后執(zhí)行所述SQL指令,得到執(zhí)行結(jié)果;所述邏輯層模塊還用于將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后通過(guò)所述服務(wù)層模塊反饋給云用戶。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述邏輯層模塊包括中間件配置模塊,用于保存云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù);查詢信息提取模塊,用于當(dāng)所述服務(wù)層模塊收到云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令時(shí),用該指令中攜帶的數(shù)據(jù)庫(kù)元數(shù)據(jù)和所述中間件配置模塊保存的元數(shù)據(jù)進(jìn)行匹配,確認(rèn)該指令要訪問(wèn)的數(shù)據(jù)庫(kù);確認(rèn)后對(duì)所述云用戶的權(quán)限進(jìn)行驗(yàn)證;如果驗(yàn)證沒(méi)通過(guò)則通過(guò)所述服務(wù)層模塊向所述云用戶報(bào)告異常;轉(zhuǎn)換模塊,用于當(dāng)所述查詢信息提取模塊驗(yàn)證通過(guò)時(shí),解析所述數(shù)據(jù)庫(kù)訪問(wèn)指令得到 SQL指令,以及將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后通過(guò)所述服務(wù)層模塊反饋給云用戶。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于所述中間件配置模塊還用于保存各數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息;所述用戶驗(yàn)證信息包括第三方簽發(fā)的證書(shū)或該數(shù)據(jù)庫(kù)中各用戶的用戶名、密碼及數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限; 所述查詢信息提取模塊對(duì)云用戶的權(quán)限進(jìn)行驗(yàn)證是指所述查詢信息提取模塊根據(jù)所述數(shù)據(jù)庫(kù)訪問(wèn)指令中攜帶的用戶名和密碼,在所確認(rèn)的數(shù)據(jù)庫(kù)的用戶驗(yàn)證信息中進(jìn)行匹配;能匹配成功則驗(yàn)證通過(guò),確定所述云用戶的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限;否則驗(yàn)證沒(méi)有通過(guò)。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)預(yù)存在一數(shù)據(jù)資源配置文檔中;所述用戶驗(yàn)證信息預(yù)存在一角色映射文檔中;所述查詢信息提取模塊提供一角色映射器,來(lái)完成云用戶與角色映射文檔的匹配。
全文摘要
本發(fā)明公開(kāi)了一種基于云計(jì)算的數(shù)據(jù)訪問(wèn)方法和數(shù)據(jù)庫(kù)系統(tǒng);所述方法包括當(dāng)收到云用戶的數(shù)據(jù)庫(kù)訪問(wèn)指令時(shí),用該指令中攜帶的數(shù)據(jù)庫(kù)元數(shù)據(jù)和云系統(tǒng)中各數(shù)據(jù)庫(kù)的元數(shù)據(jù)進(jìn)行匹配,確認(rèn)該指令要訪問(wèn)的數(shù)據(jù)庫(kù);解析所述數(shù)據(jù)庫(kù)訪問(wèn)指令得到結(jié)構(gòu)化查詢語(yǔ)言SQL指令;生成數(shù)據(jù)庫(kù)連接字符串,定位到所確認(rèn)的數(shù)據(jù)庫(kù)中;然后執(zhí)行所述SQL指令,得到執(zhí)行結(jié)果;將所述執(zhí)行結(jié)果轉(zhuǎn)換為所述云用戶采用的數(shù)據(jù)格式后反饋給該云用戶。本發(fā)明能在云計(jì)算環(huán)境中打破應(yīng)用程序和數(shù)據(jù)庫(kù)的緊耦合,使數(shù)據(jù)訪問(wèn)在更廣闊的平臺(tái)上擴(kuò)展。
文檔編號(hào)G06F17/30GK102508898SQ20111034514
公開(kāi)日2012年6月20日 申請(qǐng)日期2011年11月4日 優(yōu)先權(quán)日2011年11月4日
發(fā)明者王帥, 高飛 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司