專利名稱:一種查詢數(shù)據(jù)庫的方法、服務(wù)器及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種查詢數(shù)據(jù)庫的方法、服務(wù)器及系 統(tǒng)。
背景技術(shù):
輕量級目錄訪問協(xié)議(LDAP,Lightweight Directory Access Protocol)是一種 可以進(jìn)行數(shù)據(jù)查詢及修改的規(guī)范。LDAP服務(wù)器向LDAP客戶端提供目錄服務(wù),目錄本質(zhì)上是一種特殊的數(shù)據(jù)庫。LDAP 服務(wù)器接收LDAP客戶端發(fā)送的LDAP請求,根據(jù)LDAP請求從目錄中獲取信息,并向LDAP客 戶端返回LDAP響應(yīng)。發(fā)明人在研究過程中,發(fā)現(xiàn)若LDAP客戶端向LDAP服務(wù)器請求關(guān)系數(shù)據(jù)庫中的數(shù) 據(jù),則LDAP服務(wù)器無法獲取關(guān)系數(shù)據(jù)庫中的數(shù)據(jù),從而無法向LDAP客戶端返回關(guān)系數(shù)據(jù)庫 中的數(shù)據(jù)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供了一種查詢數(shù)據(jù)庫的方法、服務(wù)器及系統(tǒng),以使LDAP 服務(wù)器可以向LDAP客戶端返回關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。一種查詢數(shù)據(jù)庫的方法,所述方法包括向關(guān)系數(shù)據(jù)庫提交由輕量級目錄訪問協(xié)議LDAP請求映射的結(jié)構(gòu)化查詢語言SQL 請求;接收所述關(guān)系數(shù)據(jù)庫根據(jù)所述SQL請求返回的SQL響應(yīng),所述SQL響應(yīng)包括所述 關(guān)系數(shù)據(jù)庫查詢獲得的對應(yīng)數(shù)據(jù)表;為所述對應(yīng)數(shù)據(jù)表的每條記錄擴(kuò)展唯一的關(guān)鍵字,并在目錄中為所述數(shù)據(jù)表的目 錄項(xiàng)構(gòu)造至少一個(gè)下一級目錄項(xiàng),每個(gè)下一級目錄項(xiàng)與所述每條記錄一一對應(yīng),且所述每 個(gè)下一級目錄項(xiàng)的相對可辨別名RDN為對應(yīng)記錄的唯一的關(guān)鍵字;向客戶端返回LDAP響應(yīng),所述LDAP響應(yīng)包括所述下一級目錄項(xiàng)的路徑。一種服務(wù)器,所述服務(wù)器包括提交單元,用于向關(guān)系數(shù)據(jù)庫提交由輕量級目錄訪問協(xié)議LDAP請求映射的結(jié)構(gòu) 化查詢語言SQL請求;接收單元,用于接收所述關(guān)系數(shù)據(jù)庫根據(jù)所述SQL請求返回的SQL響應(yīng),所述SQL 響應(yīng)包括所述關(guān)系數(shù)據(jù)庫查詢獲得的對應(yīng)數(shù)據(jù)表;擴(kuò)展單元,用于為所述對應(yīng)數(shù)據(jù)表的每條記錄擴(kuò)展唯一的關(guān)鍵字;構(gòu)造單元,用于在目錄中為所述數(shù)據(jù)表的目錄項(xiàng)構(gòu)造至少一個(gè)下一級目錄項(xiàng),每 個(gè)下一級目錄項(xiàng)與所述每條記錄一一對應(yīng),且所述每個(gè)下一級目錄項(xiàng)的RDN為對應(yīng)記錄的 唯一的關(guān)鍵字;返回單元,用于向客戶端返回LDAP響應(yīng),所述LDAP響應(yīng)包括所述下一級目錄項(xiàng)的
5路徑。一種查詢數(shù)據(jù)庫的系統(tǒng),所述系統(tǒng)包括服務(wù)器,用于向關(guān)系數(shù)據(jù)庫提交由LDAP請求映射的SQL請求;接收所述關(guān)系數(shù)據(jù) 庫根據(jù)所述SQL請求返回的SQL響應(yīng),所述SQL響應(yīng)包括所述關(guān)系數(shù)據(jù)庫查詢獲得的對應(yīng) 數(shù)據(jù)表;為所述對應(yīng)數(shù)據(jù)表的每條記錄擴(kuò)展唯一的關(guān)鍵字,并在目錄中為所述數(shù)據(jù)表的目 錄項(xiàng)構(gòu)造至少一個(gè)下一級目錄項(xiàng),每個(gè)下一級目錄項(xiàng)與所述每條記錄一一對應(yīng),且所述每 個(gè)下一級目錄項(xiàng)的RDN為對應(yīng)記錄的唯一的關(guān)鍵字;向客戶端返回LDAP響應(yīng),所述LDAP響 應(yīng)包括所述下一級目錄項(xiàng)的路徑;客戶端,用于向所述服務(wù)器發(fā)送所述LDAP請求,并接收服務(wù)器返回的LDAP響應(yīng), 所述LDAP響應(yīng)包括所述下一級目錄項(xiàng)的路徑??梢钥闯?,在本發(fā)明實(shí)施例中,當(dāng)接收到來自關(guān)系數(shù)據(jù)庫的SQL響應(yīng)時(shí),為數(shù)據(jù)表 的每條記錄擴(kuò)展唯一的關(guān)鍵字,并為數(shù)據(jù)表的目錄項(xiàng)構(gòu)造下一級目錄項(xiàng),將每條記錄的關(guān) 鍵字作為每個(gè)下一級目錄項(xiàng)的RDN,從而實(shí)現(xiàn)了關(guān)系數(shù)據(jù)庫向LDAP目錄的轉(zhuǎn)換,進(jìn)而可以 向客戶端返回包含客戶端所需數(shù)據(jù)的響應(yīng)。
圖1為一種LDAP目錄結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例一種查詢數(shù)據(jù)庫的方法流程圖;圖3為本發(fā)明實(shí)施例一種LDAP服務(wù)器處理LDAP請求的方法流程圖;圖4為本發(fā)明實(shí)施例建立的三級索引結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例一種LDAP服務(wù)器處理SQL響應(yīng)的方法流程圖;圖6為本發(fā)明實(shí)施例構(gòu)造下一級目錄項(xiàng)的示意圖;圖7為本發(fā)明實(shí)施例構(gòu)造下一級目錄項(xiàng)的具體實(shí)例示意圖;圖8為本發(fā)明實(shí)施例提供的一種服務(wù)器結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例提供的另一種服務(wù)器結(jié)構(gòu)示意圖;圖10為本發(fā)明實(shí)施例提供的一種查詢數(shù)據(jù)庫的系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明實(shí)施例的上述特征、優(yōu)點(diǎn)更加明顯易懂,下面結(jié)合具體實(shí)施方式
進(jìn) 行詳細(xì)說明。為便于理解,首先對LDAP服務(wù)器中的目錄進(jìn)行介紹。在目錄中,數(shù)據(jù)的存儲方式與關(guān)系數(shù)據(jù)庫是不同。在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)是以表為 單位存儲,表與表之間通過主外鍵相關(guān)聯(lián)。在目錄中,按照層次結(jié)構(gòu)存儲數(shù)據(jù),這種結(jié)構(gòu)與 眾多行業(yè)或者業(yè)務(wù)的結(jié)構(gòu)組織一致,例如學(xué)校的各部門、人員以及資源所組成的結(jié)構(gòu)。請 參考圖1,為一種LDAP目錄結(jié)構(gòu)示意圖。在圖1中,101表示教育部,102表示一個(gè)大學(xué),103 表示該大學(xué)中的物理系,104表示物理系的張教授,105表示物理系的李教授。目錄中所有的信息包含在目錄信息樹(DIT,Directory Information Tree) 中。DIT中每個(gè)節(jié)點(diǎn)成為一個(gè)目錄項(xiàng)(Entry),目錄項(xiàng)具有相對可辨別名(RDN,Relative Distinguished Name),RDN在兄弟節(jié)點(diǎn)中必須是唯一的。從一個(gè)特定目錄項(xiàng)到DIT的根目錄項(xiàng)的節(jié)點(diǎn)序列中,所有RDN組成了根目錄項(xiàng)的可辨別名(DN,Distinguished Name),DN用 來唯一標(biāo)識根目錄項(xiàng)。下面以圖1為例,對目錄項(xiàng)、目錄項(xiàng)的RDNjg目錄項(xiàng)以及根目錄項(xiàng)的 DN進(jìn)行說明。在圖1中,101、102、103、104以及105分別表示一個(gè)目錄項(xiàng)對應(yīng)的節(jié)點(diǎn),101 的RDN可以是一個(gè)唯一標(biāo)識教育部的編號,102的RDN可以是一個(gè)唯一標(biāo)識一個(gè)大學(xué)的編 號,103的RDN可以是在該大學(xué)中唯一標(biāo)識物理系的編號,104的RDN可以是在該大學(xué)中唯 一標(biāo)識物理系的張教授的職工編號,105的RDN可以是在該大學(xué)中唯一標(biāo)識物理系的李教 授的職工編號。101為圖1所示的根目錄項(xiàng),其DN可以由在該大學(xué)中唯一標(biāo)識物理系的張 教授的職工編號、在該大學(xué)中唯一標(biāo)識物理系的編號、唯一標(biāo)識該大學(xué)的編號以及唯一標(biāo) 識教育部的編號組成。每個(gè)目錄項(xiàng)都與一個(gè)對象類(Object Class)對應(yīng),對象類描述了該類中各Entry 應(yīng)包含的各種屬性。目錄以對象的形式存放描述性的、基于屬性的信息。下面以各實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。請參考圖2,為本發(fā)明實(shí)施例一種查詢數(shù)據(jù)庫方法流程圖,可以包括以下步驟步驟201 向關(guān)系數(shù)據(jù)庫提交由LDAP請求映射的結(jié)構(gòu)化查詢語言(SQL, Structured Query Language) i青;步驟202 接收所述關(guān)系數(shù)據(jù)庫根據(jù)所述SQL請求返回的SQL響應(yīng),所述SQL響應(yīng) 包括所述關(guān)系數(shù)據(jù)庫查詢獲得的對應(yīng)數(shù)據(jù)表;步驟203 為所述對應(yīng)數(shù)據(jù)表的每條記錄擴(kuò)展唯一的關(guān)鍵字,并在目錄中為所述 數(shù)據(jù)表的目錄項(xiàng)構(gòu)造至少一個(gè)下一級目錄項(xiàng),每個(gè)下一級目錄項(xiàng)與所述每條記錄一一對 應(yīng),且所述每個(gè)下一級目錄項(xiàng)的RDN為對應(yīng)記錄的唯一的關(guān)鍵字;步驟204 向客戶端返回LDAP響應(yīng),所述LDAP響應(yīng)包括所述下一級目錄項(xiàng)的路徑??梢钥闯?,在本發(fā)明實(shí)施例中,當(dāng)LDAP服務(wù)器接收到來自關(guān)系數(shù)據(jù)庫的SQL響應(yīng) 時(shí),為數(shù)據(jù)表的每條記錄擴(kuò)展唯一的關(guān)鍵字,并為數(shù)據(jù)表的目錄項(xiàng)構(gòu)造下一級目錄項(xiàng),將每 條記錄的關(guān)鍵字作為每個(gè)下一級目錄項(xiàng)的RDN,從而實(shí)現(xiàn)了關(guān)系數(shù)據(jù)庫向LDAP目錄的轉(zhuǎn) 換,進(jìn)而可以向客戶端返回包含客戶端所需數(shù)據(jù)的響應(yīng)。下面以一個(gè)更加具體的實(shí)施例對本發(fā)明進(jìn)行說明。首先需要指出的是,數(shù)據(jù)表中每條記錄可以有單個(gè)關(guān)鍵字,或者,可以沒有關(guān)鍵 字,或者,可以有至少兩個(gè)關(guān)鍵字。在本發(fā)明實(shí)施例中,不管數(shù)據(jù)表中每條記錄的關(guān)鍵字個(gè) 數(shù)是多少,均可以為每條記錄擴(kuò)展一個(gè)唯一的關(guān)鍵字,且在目錄中為數(shù)據(jù)表的目錄項(xiàng)構(gòu)造 至少一個(gè)下一級目錄項(xiàng)。在該實(shí)施例中,LDAP客戶端向LDAP服務(wù)器請求關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。LDAP服務(wù) 器接收LDAP客戶端發(fā)送的LDAP請求,將LDAP請求映射為SQL請求,并將SQL請求發(fā)送給 相應(yīng)的關(guān)系數(shù)據(jù)庫。接收到SQL請求的關(guān)系數(shù)據(jù)庫進(jìn)行處理后,向LDAP服務(wù)器返回SQL響應(yīng)。LDAP服務(wù)器為接收到的每條記錄擴(kuò)展唯一的關(guān)鍵字,并在目錄中為該關(guān)系數(shù)據(jù)庫 數(shù)據(jù)表的目錄項(xiàng)構(gòu)造下一級目錄項(xiàng),每條記錄分別對應(yīng)每個(gè)下一級目錄項(xiàng),且將每條記錄 擴(kuò)展的關(guān)鍵字分別作為與其對應(yīng)的下一級目錄項(xiàng)的RDN,每條記錄的內(nèi)容分別為與其對應(yīng) 的下一級目錄項(xiàng)的屬性。至此,完成了關(guān)系數(shù)據(jù)庫的數(shù)據(jù)表向LDAP目錄的轉(zhuǎn)換。LDAP向
7LDAP客戶端返回LDAP響應(yīng),LDAP響應(yīng)中包含LDAP客戶端所請求的數(shù)據(jù)。請參考圖3,為本發(fā)明實(shí)施例一種LDAP服務(wù)器處理LDAP請求的方法流程圖,可以 包括以下步驟步驟301 =LDAP服務(wù)器啟動(dòng)后,對待查詢的各關(guān)系數(shù)據(jù)庫進(jìn)行配置。對各個(gè)關(guān)系數(shù)據(jù)庫配置后得到了配置信息,其中配置信息包括待查詢的各關(guān)系數(shù) 據(jù)庫的路徑;可選地,配置信息還可以包括各關(guān)系數(shù)據(jù)庫的類型、版本號、用戶名、密碼、 各關(guān)系數(shù)據(jù)庫對應(yīng)的IP地址、或者端口號等。步驟302 =LDAP服務(wù)器根據(jù)配置信息連接待查詢的各關(guān)系數(shù)據(jù)庫。步驟303 =LDAP服務(wù)器從待查詢的各關(guān)系數(shù)據(jù)庫分別獲取元數(shù)據(jù),并為待查詢的 各關(guān)系數(shù)據(jù)庫建立數(shù)據(jù)庫、數(shù)據(jù)表與數(shù)據(jù)表字段的三級索引。其中,步驟301至步驟303為可選項(xiàng),即LDAP服務(wù)器可以不用在每次接收到LDAP 請求后都執(zhí)行步驟301至步驟303.元數(shù)據(jù)是一種數(shù)據(jù)的數(shù)據(jù),描述了關(guān)系數(shù)據(jù)庫的以下信息數(shù)據(jù)表的個(gè)數(shù)以及數(shù) 據(jù)表的表名、數(shù)據(jù)表的字段以及字段類型。獲取元數(shù)據(jù)的SQL因數(shù)據(jù)庫制造商不同而存在差異,LDAP服務(wù)器安裝了訪問各類 關(guān)系數(shù)據(jù)庫的數(shù)據(jù)庫接口,內(nèi)置了構(gòu)造SQL語句的規(guī)則。LDAP服務(wù)器定時(shí)訪問各關(guān)系數(shù)據(jù) 庫,獲取最新的元數(shù)據(jù),然后對三級索引進(jìn)行更新。請參考圖4,為本發(fā)明實(shí)施例建立的三級索引結(jié)構(gòu)示意圖。在圖4中,第一級為η 個(gè)關(guān)系數(shù)據(jù)庫,η為自然數(shù),第二級為第一關(guān)系數(shù)據(jù)庫401的m個(gè)數(shù)據(jù)表,m為自然數(shù),第三 級分別是m個(gè)數(shù)據(jù)表的字段。步驟304 =LDAP客戶端向LDAP服務(wù)器發(fā)送LDAP請求。其中,LDAP請求中包括LDAP客戶端請求的數(shù)據(jù)所在的關(guān)系數(shù)據(jù)庫的路徑,LDAP請 求還可以包含目錄項(xiàng)的屬性,目錄項(xiàng)的屬性映射到相應(yīng)的字段。另外,LDAP請求還可以根 據(jù)用戶需求包括過濾條件。步驟305 =LDAP服務(wù)器判斷LDAP請求中的信息是否包含配置信息,若不包含,則按 照LDAP規(guī)范處理,否則,進(jìn)入步驟306。步驟306 =LDAP服務(wù)器根據(jù)LDAP請求中的關(guān)系數(shù)據(jù)庫的路徑確定要查詢的關(guān)系數(shù)據(jù)庫。步驟307 =LDAP服務(wù)器根據(jù)確定出的關(guān)系數(shù)據(jù)庫的目錄項(xiàng)查詢其下一級目錄項(xiàng), 得到數(shù)據(jù)表名稱。步驟308 :LDAP服務(wù)器根據(jù)確定出的關(guān)系數(shù)據(jù)庫、數(shù)據(jù)表名稱以及三級索引查找 該數(shù)據(jù)表是否存在,若是,進(jìn)入步驟309,否則,向LDAP客戶端返回“錯(cuò)誤”信息。步驟309 :LDAP服務(wù)器根據(jù)三級索引查詢所請求的數(shù)據(jù)的字段是否合法,若合法,
構(gòu)造選擇輸出字段(例如“SELECT字段1,字段2,......”)的子句,若不合法,構(gòu)造該數(shù)
據(jù)表中所有字段(例如“SELECT*”)的子句。步驟310 =LDAP服務(wù)器將LDAP請求中的過濾條件轉(zhuǎn)換為SQL查詢條件句(例如 WHERE)的子句。上述選擇輸出字段與所述LDAP請求中查詢的屬性對應(yīng)。在構(gòu)造條件子句時(shí),需要根據(jù)三級索引確定字段類型,且字符串類型的字段值需
例如LDAP請求中的過濾條件為”grade = senior engineer”,如果根據(jù)三級索 引確定出grade的值是字符串類型,則轉(zhuǎn)換成的SQL語句為grade =,seniorengineer'0其中,步驟309與步驟310的執(zhí)行順序可以互換。通過步驟309與步驟310,構(gòu) 造好了 SQL請求。根據(jù)LDAP請求構(gòu)造SQL請求請參考以下實(shí)例查詢路徑為"dn:Cn = employee, ou = HR, ο = huawei “的數(shù)據(jù)表,可以轉(zhuǎn)化為〃 select*from employee"的 SQL 語句,其中,employee是職員表,HR是人事數(shù)據(jù)庫。步驟311 =LDAP服務(wù)器將構(gòu)造好的SQL請求提交至該關(guān)系數(shù)據(jù)庫。接收到SQL請求的關(guān)系數(shù)據(jù)庫解析SQL請求,將解析后的SQL請求轉(zhuǎn)換為內(nèi)部數(shù) 據(jù)操作命令,獲得數(shù)據(jù)結(jié)果,并向LDAP服務(wù)器返回SQL響應(yīng)。請參考圖5,為本發(fā)明實(shí)施例一種LDAP服務(wù)器處理SQL響應(yīng)的方法流程圖,可以包 括以下步驟步驟501 =LDAP服務(wù)器接收到關(guān)系數(shù)據(jù)庫返回的SQL響應(yīng);SQL響應(yīng)中包括LDAP客戶端請求的數(shù)據(jù)所屬的數(shù)據(jù)表。步驟502 =LDAP服務(wù)器遍歷接收到的數(shù)據(jù)表的所有記錄,并為每條記錄擴(kuò)展一個(gè)字段。每條記錄所擴(kuò)展的字段可以從數(shù)字1開始,以等差數(shù)列的方式遞增。需要指出的 是,每條記錄所擴(kuò)展的字段互不相同,即每條記錄的字段唯一。步驟503 =LDAP服務(wù)器為該關(guān)系數(shù)據(jù)庫的數(shù)據(jù)表對應(yīng)的目錄項(xiàng)構(gòu)造至少一個(gè)下一 級目錄項(xiàng)。構(gòu)造的下一級目錄項(xiàng)與接收到的數(shù)據(jù)表的記錄一一對應(yīng),且每條目錄項(xiàng)的RDN為 所對應(yīng)的記錄擴(kuò)展的字段,屬性為所對應(yīng)的記錄的內(nèi)容。請參考圖6,為本發(fā)明實(shí)施例構(gòu)造下一級目錄項(xiàng)的示意圖。在圖6中,601為目錄的 根目錄項(xiàng),602為根目錄項(xiàng)的下一級目錄項(xiàng),603為該關(guān)系數(shù)據(jù)庫的目錄項(xiàng),包含該關(guān)系數(shù) 據(jù)庫的特征,且假設(shè)其RDN為DSl,604為該關(guān)系數(shù)據(jù)庫數(shù)據(jù)表的目錄項(xiàng),605、606以及607 為構(gòu)造的數(shù)據(jù)表的下一級目錄項(xiàng),分別與數(shù)據(jù)表的每條記錄相對應(yīng)。請參考圖7,為本發(fā)明實(shí)施例構(gòu)造下一級目錄項(xiàng)的具體實(shí)例示意圖。假設(shè)接收到的 數(shù)據(jù)表為表1 :表 權(quán)利要求
1.一種查詢數(shù)據(jù)庫的方法,其特征在于,所述方法包括向關(guān)系數(shù)據(jù)庫提交由輕量級目錄訪問協(xié)議LDAP請求映射的結(jié)構(gòu)化查詢語言SQL請求;接收所述關(guān)系數(shù)據(jù)庫根據(jù)所述SQL請求返回的SQL響應(yīng),所述SQL響應(yīng)包括所述關(guān)系 數(shù)據(jù)庫查詢獲得的對應(yīng)數(shù)據(jù)表;為所述對應(yīng)數(shù)據(jù)表的每條記錄擴(kuò)展唯一的關(guān)鍵字,并在目錄中為所述數(shù)據(jù)表的目錄項(xiàng) 構(gòu)造至少一個(gè)下一級目錄項(xiàng),每個(gè)下一級目錄項(xiàng)與所述每條記錄一一對應(yīng),且所述每個(gè)下 一級目錄項(xiàng)的相對可辨別名RDN為對應(yīng)記錄的唯一的關(guān)鍵字;向客戶端返回LDAP響應(yīng),所述LDAP響應(yīng)包括所述下一級目錄項(xiàng)的路徑。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括對待查詢的各關(guān)系數(shù)據(jù)庫進(jìn)行配置,以得到配置信息,所述配置信息至少包括所述待 查詢的各關(guān)系數(shù)據(jù)庫的路徑;所述向關(guān)系數(shù)據(jù)庫提交由輕量級目錄訪問協(xié)議LDAP請求映射的結(jié)構(gòu)化查詢語言SQL 請求包括根據(jù)所述待查詢的各關(guān)系數(shù)據(jù)庫的路徑確定要查詢的關(guān)系數(shù)據(jù)庫; 向確定出的關(guān)系數(shù)據(jù)庫提交由輕量級目錄訪問協(xié)議LDAP請求映射的結(jié)構(gòu)化查詢語言 SQL請求。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括 根據(jù)所述配置信息連接到所述待查詢的各關(guān)系數(shù)據(jù)庫; 從所述待查詢的各關(guān)系數(shù)據(jù)庫分別獲取元數(shù)據(jù);根據(jù)獲取的元數(shù)據(jù)分別為所述待查詢的各關(guān)系數(shù)據(jù)庫建立關(guān)系數(shù)據(jù)庫、數(shù)據(jù)表以及數(shù) 據(jù)表字段的三級索引;所述向確定出的關(guān)系數(shù)據(jù)庫提交由輕量級目錄訪問協(xié)議LDAP請求映射的結(jié)構(gòu)化查詢 語言SQL請求,包括根據(jù)確定出的關(guān)系數(shù)據(jù)庫的目錄項(xiàng)查詢下一級目錄項(xiàng),得到數(shù)據(jù)表名稱; 根據(jù)確定出的關(guān)系數(shù)據(jù)庫、所述數(shù)據(jù)表名稱以及所述三級索引確定存在所述LDAP請 求對應(yīng)數(shù)據(jù)表,則將LDAP請求映射為對應(yīng)的SQL請求,并向確定出的關(guān)系數(shù)據(jù)庫提交由 LDAP請求映射的SQL請求。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括 定時(shí)訪問所述待查詢的各關(guān)系數(shù)據(jù)庫;獲取所述待查詢的各關(guān)系數(shù)據(jù)庫最新的元數(shù)據(jù); 根據(jù)獲取的所述最新的元數(shù)據(jù)對所述三級索引進(jìn)行更新。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,將所述LDAP請求映射為對應(yīng)的SQL請求 包括根據(jù)所述三級索引查詢所述客戶端請求的數(shù)據(jù)的字段是否合法,若合法,則構(gòu)造選擇 輸出字段的子句,所述選擇輸出字段與所述LDAP請求中查詢的屬性對應(yīng),若不合法,則構(gòu) 造所述客戶端請求的數(shù)據(jù)所在數(shù)據(jù)表中所有字段的子句;將所述LDAP請求中的過濾條件 轉(zhuǎn)換為SQL查詢條件句的子句。
6.一種服務(wù)器,其特征在于,所述服務(wù)器包括提交單元,用于向關(guān)系數(shù)據(jù)庫提交由輕量級目錄訪問協(xié)議LDAP請求映射的結(jié)構(gòu)化查 詢語言SQL請求;接收單元,用于接收所述關(guān)系數(shù)據(jù)庫根據(jù)所述SQL請求返回的SQL響應(yīng),所述SQL響應(yīng) 包括所述關(guān)系數(shù)據(jù)庫查詢獲得的對應(yīng)數(shù)據(jù)表;擴(kuò)展單元,用于為所述對應(yīng)數(shù)據(jù)表的每條記錄擴(kuò)展唯一的關(guān)鍵字; 構(gòu)造單元,用于在目錄中為所述數(shù)據(jù)表的目錄項(xiàng)構(gòu)造至少一個(gè)下一級目錄項(xiàng),每個(gè)下 一級目錄項(xiàng)與所述每條記錄一一對應(yīng),且所述每個(gè)下一級目錄項(xiàng)的RDN為對應(yīng)記錄的唯一 的關(guān)鍵字;返回單元,用于向客戶端返回LDAP響應(yīng),所述LDAP響應(yīng)包括所述下一級目錄項(xiàng)的路徑。
7.根據(jù)權(quán)利要求6所述的服務(wù)器,其特征在于,所述服務(wù)器還包括配置單元,用于在所述提交單元執(zhí)行操作之前,對待查詢的各關(guān)系數(shù)據(jù)庫進(jìn)行配置,以 得到配置信息,所述配置信息至少包括所述各關(guān)系數(shù)據(jù)庫的路徑;數(shù)據(jù)庫確定單元,用于根據(jù)所述待查詢的各關(guān)系數(shù)據(jù)庫的路徑確定要查詢的關(guān)系數(shù)據(jù)庫;所述提交單元用于向確定出的關(guān)系數(shù)據(jù)庫提交由輕量級目錄訪問協(xié)議LDAP請求映射 的結(jié)構(gòu)化查詢語言SQL請求。
8.根據(jù)權(quán)利要求7所述的服務(wù)器,其特征在于,所述服務(wù)器還包括建立單元,用于根據(jù)所述配置單元的配置信息連接到所述待查詢的各關(guān)系數(shù)據(jù)庫,從 所述待查詢的各關(guān)系數(shù)據(jù)庫分別獲取元數(shù)據(jù),根據(jù)獲取的元數(shù)據(jù)分別為所述待查詢的各關(guān) 系數(shù)據(jù)庫建立關(guān)系數(shù)據(jù)庫、數(shù)據(jù)表以及數(shù)據(jù)表字段的三級索引;查詢單元,用于根據(jù)所述數(shù)據(jù)庫確定單元確定出的關(guān)系數(shù)據(jù)庫的目錄項(xiàng)查詢下一級目 錄項(xiàng),得到數(shù)據(jù)表名稱;數(shù)據(jù)表確定單元,用于根據(jù)所述數(shù)據(jù)庫確定單元確定出的關(guān)系數(shù)據(jù)庫、所述查詢單元 得到的數(shù)據(jù)表名稱以及所述建立單元建立的三級索引確定存在所述輕量級目錄訪問協(xié)議 LDAP請求對應(yīng)數(shù)據(jù)表。
9.根據(jù)權(quán)利要求8所述的服務(wù)器,其特征在于,所述服務(wù)器還包括更新單元,用于定時(shí)訪問所述待查詢的各關(guān)系數(shù)據(jù)庫,獲取所述待查詢的各關(guān)系數(shù)據(jù) 庫最新的元數(shù)據(jù),根據(jù)獲取的所述最新的元數(shù)據(jù)對所述建立單元的三級索引進(jìn)行更新。
10.根據(jù)權(quán)利要求6所述的服務(wù)器,其特征在于,所述提交單元包括映射單元,用于根據(jù)所述三級索引查詢所述客戶端請求的數(shù)據(jù)的字段是否合法,若合 法,則構(gòu)造選擇輸出字段的子句,所述選擇輸出字段與所述LDAP請求中查詢的屬性對應(yīng), 若不合法,則構(gòu)造所述客戶端請求的數(shù)據(jù)所在數(shù)據(jù)表中所有字段的子句;將所述LDAP請求 中的過濾條件轉(zhuǎn)換為SQL查詢條件句的子句。
11.一種查詢數(shù)據(jù)庫的系統(tǒng),其特征在于,所述系統(tǒng)包括服務(wù)器,用于向關(guān)系數(shù)據(jù)庫提交由輕量級目錄訪問協(xié)議LDAP請求映射的結(jié)構(gòu)化查詢 語言SQL請求;接收所述關(guān)系數(shù)據(jù)庫根據(jù)所述SQL請求返回的SQL響應(yīng),所述SQL響應(yīng)包 括所述關(guān)系數(shù)據(jù)庫查詢獲得的對應(yīng)數(shù)據(jù)表;為所述對應(yīng)數(shù)據(jù)表的每條記錄擴(kuò)展唯一的關(guān)鍵 字,并在目錄中為所述數(shù)據(jù)表的目錄項(xiàng)構(gòu)造至少一個(gè)下一級目錄項(xiàng),每個(gè)下一級目錄項(xiàng)與所述每條記錄一一對應(yīng),且所述每個(gè)下一級目錄項(xiàng)的RDN為對應(yīng)記錄的唯一的關(guān)鍵字;向 客戶端返回LDAP響應(yīng),所述LDAP響應(yīng)包括所述下一級目錄項(xiàng)的路徑;客戶端,用于向所述服務(wù)器發(fā)送所述LDAP請求,并接收服務(wù)器返回的LDAP響應(yīng),所述 LDAP響應(yīng)包括所述下一級目錄項(xiàng)的路徑。
全文摘要
本發(fā)明實(shí)施例公開了一種查詢數(shù)據(jù)庫的方法、服務(wù)器及系統(tǒng)。所述方法包括向關(guān)系數(shù)據(jù)庫提交由輕量級目錄訪問協(xié)議LDAP請求映射的結(jié)構(gòu)化查詢語言SQL請求;接收所述關(guān)系數(shù)據(jù)庫根據(jù)所述SQL請求返回的SQL響應(yīng),所述SQL響應(yīng)包括所述關(guān)系數(shù)據(jù)庫查詢獲得的對應(yīng)數(shù)據(jù)表;為所述對應(yīng)數(shù)據(jù)表的每條記錄擴(kuò)展唯一的關(guān)鍵字,并在目錄中為所述數(shù)據(jù)表的目錄項(xiàng)構(gòu)造至少一個(gè)下一級目錄項(xiàng),每個(gè)下一級目錄項(xiàng)與所述每條記錄一一對應(yīng),且所述每個(gè)下一級目錄項(xiàng)的相對可辨別名RDN為對應(yīng)記錄的唯一的關(guān)鍵字;向客戶端返回LDAP響應(yīng),所述LDAP響應(yīng)包括所述下一級目錄項(xiàng)的路徑。通過本發(fā)明實(shí)施例,LDAP服務(wù)器可以向LDAP客戶端返回關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。
文檔編號G06F17/30GK102073644SQ20091022261
公開日2011年5月25日 申請日期2009年11月19日 優(yōu)先權(quán)日2009年11月19日
發(fā)明者查峰 申請人:華為技術(shù)有限公司