數(shù)據(jù)查詢控制方法及裝置的制造方法
【專利摘要】本發(fā)明是關(guān)于一種數(shù)據(jù)查詢控制方法及裝置,所述方法包括:獲取用戶輸入的原始查詢語句;對(duì)所述原始查詢語句進(jìn)行語句分析,得到與所述原始查詢語句對(duì)應(yīng)的語句信息;判斷所述語句信息是否滿足預(yù)設(shè)限制條件;當(dāng)所述語句信息滿足所述預(yù)設(shè)限制條件時(shí),根據(jù)所述預(yù)設(shè)限制條件對(duì)所述原始查詢語句進(jìn)行語句加工,得到目標(biāo)查詢語句;將所述目標(biāo)查詢語句發(fā)送給預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返回與所述目標(biāo)查詢語句對(duì)應(yīng)的查詢內(nèi)容。該方法進(jìn)行數(shù)據(jù)查詢時(shí),不是按照用戶輸入的原始查詢語句直接對(duì)數(shù)據(jù)庫進(jìn)行查詢,而是在得到原始查詢語句后,進(jìn)行加工后再進(jìn)行查詢,這樣避免將不屬于該用戶的信息泄露,提高數(shù)據(jù)查詢的安全性。
【專利說明】
數(shù)據(jù)查詢控制方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)查詢控制方法及裝置。
【背景技術(shù)】
[0002] 在對(duì)關(guān)系數(shù)據(jù)庫進(jìn)行數(shù)據(jù)查詢時(shí),需要利用數(shù)據(jù)庫查詢語句,例如結(jié)構(gòu)化查詢語 句(Structured Query Language,簡(jiǎn)稱為SQL),展開相應(yīng)的數(shù)據(jù)查詢。
[0003] 目前,利用數(shù)據(jù)庫查詢語句進(jìn)行數(shù)據(jù)查詢的方法主要有兩種:一種是靜態(tài)查詢,另 外一種是動(dòng)態(tài)查詢,無論哪種查詢方式,都需要用戶向前臺(tái)交互系統(tǒng)輸入查詢語句,然后交 互系統(tǒng)將查詢語句發(fā)送給數(shù)據(jù)庫系統(tǒng)進(jìn)行查詢。
[0004] 但對(duì)于多用戶的數(shù)據(jù)庫系統(tǒng)而言,不同用戶具有的查詢權(quán)限不同,如果交互系統(tǒng) 僅僅將用戶輸入的查詢語句簡(jiǎn)單轉(zhuǎn)發(fā)給數(shù)據(jù)庫查詢系統(tǒng),那么很可能將不屬于該用戶的信 息泄露。
【發(fā)明內(nèi)容】
[0005] 為克服相關(guān)技術(shù)中存在的問題,本發(fā)明提供一種數(shù)據(jù)查詢控制方法及裝置。
[0006] 根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種數(shù)據(jù)查詢控制方法,包括:
[0007] 獲取用戶輸入的原始查詢語句;
[0008] 對(duì)所述原始查詢語句進(jìn)行語句分析,得到與所述原始查詢語句對(duì)應(yīng)的語句信息;
[0009] 判斷所述語句信息是否滿足預(yù)設(shè)限制條件;
[0010] 當(dāng)所述語句信息滿足所述預(yù)設(shè)限制條件時(shí),根據(jù)所述預(yù)設(shè)限制條件對(duì)所述原始查 詢語句進(jìn)行語句加工,得到目標(biāo)查詢語句;
[0011] 將所述目標(biāo)查詢語句發(fā)送給預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返回與所述目標(biāo)查 詢語句對(duì)應(yīng)的查詢內(nèi)容。
[0012] 可選地,所述方法還包括:
[0013] 當(dāng)所述語句信息不滿足所述預(yù)設(shè)限制條件時(shí),將所述原始查詢語句發(fā)送給所述預(yù) 設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返回與所述原始查詢語句對(duì)應(yīng)的查詢內(nèi)容。
[0014] 可選地,所述對(duì)所述原始查詢語句進(jìn)行語句分析,得到與所述原始查詢語句對(duì)應(yīng) 的語句信息,包括:
[0015] 確定所述原始查詢語句的語句格式;
[0016] 獲取與所述語句格式對(duì)應(yīng)的詞法庫、語法庫和語義庫;
[0017] 利用所述詞法庫對(duì)所述原始查詢語句進(jìn)行詞法分析,得到所述原始查詢語句中包 含的所有詞語及符號(hào);
[0018] 利用所述語法庫對(duì)得到的所有詞語和符號(hào)進(jìn)行語法分析,得到與所述原始查詢語 句對(duì)應(yīng)的語法樹;所述語法樹包含多個(gè)節(jié)點(diǎn);
[0019] 利用所述語法樹上每個(gè)節(jié)點(diǎn)進(jìn)行語義分析,得到所述語法樹中每個(gè)節(jié)點(diǎn)的語義信 息;
[0020] 將所述語法樹以及所述語法樹中每個(gè)節(jié)點(diǎn)的語音信息作為所述語句信息。
[0021] 可選地,所述預(yù)設(shè)限制條件包括:查詢權(quán)限、查詢結(jié)果條數(shù)限制和/或查詢結(jié)果字 數(shù)限制。
[0022] 可選地,所述根據(jù)所述預(yù)設(shè)限制條件對(duì)所述原始查詢語句進(jìn)行語句加工,得到目 標(biāo)查詢語句,包括:
[0023] 生成與所述預(yù)設(shè)條件相對(duì)應(yīng)的限制語句;
[0024] 將所述限制語句加入到所述原始查詢語句中作為所述目標(biāo)查詢語句。
[0025] 根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種數(shù)據(jù)查詢控制裝置,其特征在于,包括:
[0026] 語句獲取模塊,用于獲取用戶輸入的原始查詢語句;
[0027] 語句分析模塊,用于對(duì)所述原始查詢語句進(jìn)行語句分析,得到與所述原始查詢語 句對(duì)應(yīng)的語句信息;
[0028] 信息判斷模塊,用于判斷所述語句信息是否滿足預(yù)設(shè)限制條件;
[0029] 語句加工模塊,用于當(dāng)所述語句信息滿足所述預(yù)設(shè)限制條件時(shí),根據(jù)所述預(yù)設(shè)限 制條件對(duì)所述原始查詢語句進(jìn)行語句加工,得到目標(biāo)查詢語句;
[0030] 發(fā)送模塊,用于將所述目標(biāo)查詢語句發(fā)送給預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返 回與所述目標(biāo)查詢語句對(duì)應(yīng)的查詢內(nèi)容。
[0031] 可選地,其特征在于,
[0032] 所述發(fā)送模塊,還用于當(dāng)所述語句信息不滿足所述預(yù)設(shè)限制條件時(shí),將所述原始 查詢語句發(fā)送給所述預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返回與所述原始查詢語句對(duì)應(yīng)的查 詢內(nèi)容。
[0033]可選地,所述語句分析模塊包括:
[0034] 格式確定子模塊,用于確定所述原始查詢語句的語句格式;
[0035] 獲取子模塊,用于獲取與所述語句格式對(duì)應(yīng)的詞法庫、語法庫和語義庫;
[0036] 詞法分析子模塊,用于利用所述詞法庫對(duì)所述原始查詢語句進(jìn)行詞法分析,得到 所述原始查詢語句中包含的所有詞語及符號(hào);
[0037] 語法分析子模塊,用于利用所述語法庫對(duì)得到的所有詞語和符號(hào)進(jìn)行語法分析, 得到與所述原始查詢語句對(duì)應(yīng)的語法樹;所述語法樹包含多個(gè)節(jié)點(diǎn);
[0038] 語義分析子模塊,用于利用所述語法樹上每個(gè)節(jié)點(diǎn)進(jìn)行語義分析,得到所述語法 樹中每個(gè)節(jié)點(diǎn)的語義信息;
[0039] 確定子模塊,用于將所述語法樹以及所述語法樹中每個(gè)節(jié)點(diǎn)的語音信息作為所述 語句信息。
[0040] 可選地,所述預(yù)設(shè)限制條件包括:查詢權(quán)限、查詢結(jié)果條數(shù)限制和/或查詢結(jié)果字 數(shù)限制。
[0041] 可選地,所述語句加工模塊,包括:
[0042] 限制語句生成子模塊,用于生成與所述預(yù)設(shè)條件相對(duì)應(yīng)的限制語句;
[0043] 語句結(jié)合模塊,用于將所述限制語句加入到所述原始查詢語句中作為所述目標(biāo)查 詢語句。
[0044] 本發(fā)明的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
[0045] 本發(fā)明實(shí)施例提供的該數(shù)據(jù)查詢控制方法,,首先對(duì)該原始查詢語句進(jìn)行語句分 析,得到可以表征該原始查詢語句意思的語句信息,然后判斷該語句信息是否滿足特定的 預(yù)設(shè)限制條件,一旦滿足預(yù)設(shè)限制條件,按照和該預(yù)先限制條件對(duì)應(yīng)的方式對(duì)該原始查詢 語句進(jìn)行加工,得到加工后的目標(biāo)查詢語句,并最終將目標(biāo)查詢語句發(fā)送給服務(wù)器,進(jìn)行查 詢。
[0046] 因此,利用該方法在進(jìn)行數(shù)據(jù)查詢時(shí),在用戶需要對(duì)服務(wù)器中的數(shù)據(jù)庫進(jìn)行查詢 時(shí),不是按照用戶輸入的原始查詢語句直接對(duì)數(shù)據(jù)庫進(jìn)行查詢,而是在得到原始查詢語句 后,進(jìn)行加工后再進(jìn)行查詢,這樣可以使得用戶無法在數(shù)據(jù)庫中查詢?nèi)魏螖?shù)據(jù),而只能查詢 一些特定的數(shù)據(jù),所以,可以避免將不屬于該用戶的信息泄露,提高數(shù)據(jù)查詢的安全性。
[0047] 應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不 能限制本發(fā)明。
【附圖說明】
[0048] 此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施 例,并與說明書一起用于解釋本發(fā)明的原理。
[0049] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,對(duì)于本領(lǐng)域普通技術(shù)人員而 言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0050] 圖1是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)查詢控制方法的流程圖;
[0051 ]圖2是根據(jù)一示例性實(shí)施例示出的另一種數(shù)據(jù)查詢控制方法的流程圖;
[0052]圖3為圖1中步驟S102的流程示意圖;
[0053]圖4為本發(fā)明實(shí)施例提供的一種語法樹的結(jié)構(gòu)示意圖;
[0054]圖5為圖1中步驟S104的流程示意圖;
[0055] 圖6為本發(fā)明實(shí)施例提供的另一種語法樹的結(jié)構(gòu)示意圖;
[0056] 圖7為本發(fā)明實(shí)施例提供的又一種語法樹的結(jié)構(gòu)示意圖;
[0057]圖8為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)查詢控制裝置的結(jié)構(gòu)示意圖;
[0058]圖9為圖8中的語句分析模塊的結(jié)構(gòu)示意圖;
[0059] 圖10為圖8中的語句加工模塊14的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0060] 這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及 附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例 中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附 權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0061] 圖1是根據(jù)一示例性實(shí)施例示出的一種數(shù)據(jù)查詢控制方法的流程圖,該方法可以 應(yīng)用于服務(wù)器中,如圖1所示,該方法可以包括以下步驟。
[0062]步驟S101:獲取用戶輸入的原始查詢語句。
[0063]客戶端可以通過網(wǎng)絡(luò)與服務(wù)器相連接,在服務(wù)器中可以設(shè)置有數(shù)據(jù)庫,客戶端中 可以運(yùn)行有該數(shù)據(jù)庫的查詢程序或窗口,用戶可以在查詢程序或查詢窗口內(nèi)輸入需要查詢 的語句,此時(shí)輸入的語句即為原始查詢語句。
[0064] 對(duì)服務(wù)器中的不同的結(jié)構(gòu)的數(shù)據(jù)庫,用戶在輸入查詢語句時(shí),所輸入的原始查詢 語句的格式需要按照所查詢數(shù)據(jù)庫的格式相一致,這樣才可以保證所輸入的原始查詢語句 可以被識(shí)別出來,并且從數(shù)據(jù)庫中查找相應(yīng)的數(shù)據(jù)。
[0065] 步驟S102:對(duì)所述原始查詢語句進(jìn)行語句分析,得到與所述原始查詢語句對(duì)應(yīng)的 語句信息。
[0066] 參見上述關(guān)于步驟S101的描述,輸入的查詢語句的格式需要與所查詢的數(shù)據(jù)庫的 格式相同,在該步驟中,可以按照對(duì)應(yīng)的格式對(duì)原始查詢語句進(jìn)行分析,無論哪種格式的數(shù) 據(jù)庫,查詢語句的規(guī)則都是特定的,即查詢語句中包含的內(nèi)容是特定的。例如:
[0067] 查詢語句為:select deptNo,deptName,sales,score from dept;
[0068] 其中"select"是查詢動(dòng)作,表不要選擇,后面的"deptNo ,deptName, sales , score" 表示要查詢的內(nèi)容,"from dept"表示查詢的位置。
[0069]可見,通過分析該查詢語句,可以得知該查詢語句的語句信息為:從"dept"選擇 "deptNo,deptName,sales,score" 幾項(xiàng)參數(shù)。
[0070] 步驟S103:判斷所述語句信息是否滿足預(yù)設(shè)限制條件。
[0071] 預(yù)設(shè)限制條件是對(duì)當(dāng)前原始查詢語句的查詢進(jìn)行一些限制,如果不設(shè)置預(yù)設(shè)限制 條件,那么可想而知,用戶可以任意輸入查詢語句,然后就可以從數(shù)據(jù)庫中隨意查找任何數(shù) 據(jù)。
[0072] 在本發(fā)明實(shí)施例中,預(yù)設(shè)限制條件可以包括:查詢權(quán)限、查詢結(jié)果條數(shù)限制、查詢 結(jié)果字?jǐn)?shù)限制和模糊查詢結(jié)果中敏感內(nèi)容中的一種或多種組合,其中,查詢權(quán)限是對(duì)于用 戶而言,每個(gè)用戶能夠查詢的內(nèi)容是有限的;查詢結(jié)果條數(shù)限制是指用戶在一次查詢時(shí)只 能查詢?cè)O(shè)定條數(shù)的結(jié)果;查詢結(jié)果字?jǐn)?shù)限制是指用戶在每次查詢時(shí),一次查詢得到的結(jié)果 中字?jǐn)?shù)是限制的;模糊查詢結(jié)果中敏感內(nèi)容是指,查詢結(jié)果中存在一些敏感內(nèi)容需要過濾。 [0073]上述結(jié)果預(yù)設(shè)限制條件僅僅是舉例說明,在具體實(shí)施時(shí),本領(lǐng)域技術(shù)人員還可以 根據(jù)實(shí)際情況需要自由設(shè)定其它的限制條件。
[0074] 當(dāng)所述語句信息滿足所述預(yù)設(shè)限制條件時(shí),執(zhí)行步驟S104;否則,結(jié)束流程。
[0075] 步驟S104:根據(jù)所述預(yù)設(shè)限制條件對(duì)所述原始查詢語句進(jìn)行語句加工,得到目標(biāo) 查詢語句。
[0076] 如果語句信息滿足預(yù)設(shè)限制條件,表明需要對(duì)當(dāng)前的原始查詢語句進(jìn)行限制,在 本發(fā)明實(shí)施例中,通過對(duì)原始語句加工的方式,來使得本次查詢的結(jié)果符合預(yù)設(shè)限制條件 的約束。
[0077] 在本發(fā)明實(shí)施例中,對(duì)原始查詢語句進(jìn)行加工可以是指對(duì)在原始查詢語句中增加 一些語句或者刪除一些語句,已達(dá)到對(duì)本次查詢進(jìn)行限制的目的。
[0078] 步驟S105:將所述目標(biāo)查詢語句發(fā)送給預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返回與 所述目標(biāo)查詢語句對(duì)應(yīng)的查詢內(nèi)容。
[0079] 當(dāng)對(duì)原始查詢語句進(jìn)行加工后,可以將加工后得到的目標(biāo)查詢語句直接發(fā)送給服 務(wù)器,以使服務(wù)器中根據(jù)該目標(biāo)查詢語句在對(duì)應(yīng)的數(shù)據(jù)庫中進(jìn)行查詢,并且將查詢得到的 查詢內(nèi)容發(fā)送給該目標(biāo)查詢語句的發(fā)送方,例如:前述的客戶端。
[0080] 本發(fā)明實(shí)施例提供的該數(shù)據(jù)查詢控制方法,,首先對(duì)該原始查詢語句進(jìn)行語句分 析,得到可以表征該原始查詢語句意思的語句信息,然后判斷該語句信息是否滿足特定的 預(yù)設(shè)限制條件,一旦滿足預(yù)設(shè)限制條件,按照和該預(yù)先限制條件對(duì)應(yīng)的方式對(duì)該原始查詢 語句進(jìn)行加工,得到加工后的目標(biāo)查詢語句,并最終將目標(biāo)查詢語句發(fā)送給服務(wù)器,進(jìn)行查 詢。
[0081] 因此,利用該方法在進(jìn)行數(shù)據(jù)查詢時(shí),在用戶需要對(duì)服務(wù)器中的數(shù)據(jù)庫進(jìn)行查詢 時(shí),不是按照用戶輸入的原始查詢語句直接對(duì)數(shù)據(jù)庫進(jìn)行查詢,而是在得到原始查詢語句 后,進(jìn)行加工后再進(jìn)行查詢,這樣可以使得用戶無法在數(shù)據(jù)庫中查詢?nèi)魏螖?shù)據(jù),而只能查詢 一些特定的數(shù)據(jù),所以,可以避免將不屬于該用戶的信息泄露,提高數(shù)據(jù)查詢的安全性。
[0082] 在本發(fā)明一個(gè)實(shí)施例中,如圖2所示,當(dāng)所述語句信息不滿足所述預(yù)設(shè)限制條件 時(shí),本發(fā)明實(shí)施例提供的該方法還可以包括以下步驟:
[0083] 步驟S106:將所述原始查詢語句發(fā)送給所述預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返 回與所述原始查詢語句對(duì)應(yīng)的查詢內(nèi)容。
[0084] 由于原始查詢語句的語句信息不滿足預(yù)設(shè)限制條件,所以在查詢時(shí),可以直接按 照原始查詢語句進(jìn)行數(shù)據(jù)查找,因此,在該步驟中,將原始查詢語句直接發(fā)送給預(yù)設(shè)服務(wù) 器,以使服務(wù)器完全按照原始查詢語句查找數(shù)據(jù)。
[0085] 在本發(fā)明另一實(shí)施例中,如圖3所示,圖1所示實(shí)施例中的步驟S102可以包括以下 步驟。
[0086]步驟S201:確定所述原始查詢語句的語句格式。
[0087]針對(duì)不同的數(shù)據(jù)庫,查詢語句的語句格式均不相同。
[0088]步驟S202:獲取與所述語句格式對(duì)應(yīng)的詞法庫、語法庫和語義庫。
[0089] 針對(duì)不同的數(shù)據(jù)庫都可以預(yù)先設(shè)置有與語句格式對(duì)應(yīng)的詞法庫、語法庫和語義 庫,以便在得到查詢語句后,可以對(duì)查詢語句進(jìn)行分析。
[0090] 步驟S203:利用所述詞法庫對(duì)所述原始查詢語句進(jìn)行詞法分析,得到所述原始查 詢語句中包含的所有詞語及符號(hào)。
[0091 ] 在本發(fā)明實(shí)施例中,以SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)數(shù)據(jù) 庫為例,下面結(jié)合一個(gè)具體的案例進(jìn)行說明:
[0092]表1:
[0094]上表為數(shù)據(jù)中的一張數(shù)據(jù)表,該表的名稱為"Dept"。在該表中包含有不同部門的 銷售數(shù)據(jù)以及得分情況,其中,deptNo,deptName,sales,score分別為表中的不同列, deptNo為部門編號(hào),deptName為部門名稱,sales為銷量,score為得分。
[0095] 在數(shù)據(jù)庫中設(shè)置有如下限制條件,例如:
[0096] 表2:
[0098] 表2為權(quán)限表,其中,userlD表示用戶ID,resource表示在該表中表示部門編號(hào),
access:表示可以訪問。
[0099] 通過表2可以知道,用戶01具有訪問dOOl和d002部門的權(quán)限,而不具有訪問其它部 門的權(quán)限。
[0100] 當(dāng)用戶01輸入的原始查詢語句為:
[0101] "select deptNo,deptName,sales,score from dept"時(shí),
[0102] 表示用戶01需要從"dept"表中查詢所有的部門編號(hào),部門姓名,不同部門的銷量 以及不同部門的得分等情況。但參見上述表2,用戶01只具有訪問d001和d002的權(quán)限。
[0103]因此需要對(duì)上述原始查詢語句進(jìn)行處理,才能避免d003和d004兩個(gè)部門的數(shù)據(jù)泄 露給用戶01。
[0104] 在該步驟中,經(jīng)過詞法分析,也即對(duì)原始查詢語句中的所有字符進(jìn)行分詞,最終得 到的詞組包括::[select,deptNo,deptName,sales,score,from,dept]等。
[0105] 步驟S204:利用所述語法庫對(duì)得到的所有詞語和符號(hào)進(jìn)行語法分析,得到與所述 原始查詢語句對(duì)應(yīng)的語法樹。
[0106] 在本發(fā)明實(shí)施例中,在所述語法樹上包含多個(gè)節(jié)點(diǎn)。
[0107] 參見圖4所述,為對(duì)上述查詢語句進(jìn)行分析后得到的語法樹的結(jié)構(gòu)示意圖。
[0108] 步驟S205:利用所述語法樹上每個(gè)節(jié)點(diǎn)進(jìn)行語義分析,得到所述語法樹中每個(gè)節(jié) 點(diǎn)的語義信息。
[0109] 從圖中4可以看到,Root為根節(jié)點(diǎn),在根節(jié)點(diǎn)之下分別為查詢指令詞,然后是指向 對(duì)象。通過對(duì)語法樹中的語義分析,可以得到該原始查詢語句所表達(dá)的意思,也即語句信 息。
[0110] 步驟S206:將所述語法樹以及所述語法樹中每個(gè)節(jié)點(diǎn)的語音信息作為所述語句信 息。
[0111] 在本發(fā)明另一實(shí)施例中,如圖5所示,上述步驟S104可以包括以下步驟。
[0112] 步驟S301:生成與所述預(yù)設(shè)條件相對(duì)應(yīng)的限制語句。
[0113]針對(duì)上述案例,由于用戶01只具有訪問d001和d002的權(quán)限,所以,需要阻止用戶訪 問d003和d004的數(shù)據(jù),參見圖6所示,為在語法樹上進(jìn)行改進(jìn)后的示意圖。圖6中英文均為技 術(shù)人員對(duì)編碼代碼的簡(jiǎn)寫,并非英文單詞,在此不再一一介紹。
[0114] 從圖6所示語法樹可以看到,改進(jìn)后的語法樹可以使得用戶只能訪問d001和d002。 根據(jù)圖6所示語法樹,可以生成如下限制語句:
[0115] join acl on dept.deptNo = acl .resource and acl .userID='u01 ' ;
[0116] 步驟S302:將所述限制語句加入到所述原始查詢語句中作為所述目標(biāo)查詢語句。
[0117] 當(dāng)步驟S02中生成限制語句后,直接將該限制語句加入到原始查詢語句中,即可得 到目標(biāo)查詢語句,例如:
[0118] select deptNo,deptName,sales,score from dept
[0119] join acl on dept.deptNo = acl .resource and acl .userID='u01 '
[0120] 通過上述處理后,最終利用目標(biāo)查詢語句查詢后,得到的查詢結(jié)果將如下表所示。
[0121]表3:
[0123] 可見,通過上述在原始查詢語句中增加限制語句,可以使得用戶001最終得到的查 詢內(nèi)容只有dOOl和d002的數(shù)據(jù),而不再有d003和d004的數(shù)據(jù)。
[0124] 下面結(jié)合另一具體案例進(jìn)行描述,在該案例中,預(yù)設(shè)限制條件為:模糊查詢結(jié)果中 敏感內(nèi)容。
[0125] 同樣以dept表為例,后臺(tái)提供的數(shù)據(jù)表如表4所示:
[0126] 表4:
[0128] 在表4中,deptNo這一列為敏感信息,因此需要在對(duì)dept表查詢時(shí),將查詢結(jié)果中 的d印tNo這一列內(nèi)容刪除,進(jìn)行敏感信息去除。
[0129] 對(duì)于用戶01而言,假設(shè)其輸入的原始查詢語句為:
[0130] select deptNo,deptName,sales,score from dept;
[0131] 當(dāng)接收到原始查詢語句后,需要對(duì)該原始查詢語句進(jìn)行分析,詞法分析后得到的 詞組如下:
[0132] [select,deptNo,deptName, sales, score, from, dept]
[0133] 然后對(duì)上述詞組進(jìn)行語法分析,得到如圖4所示的語法樹。
[0134] 由于deptNo是敏感信息,所以需要對(duì)敏感信息進(jìn)行屏蔽,在屏蔽時(shí),可以得到如下 語法樹,參見圖7所示。
[0135] 根據(jù)上述圖7所示可知,在本實(shí)施例中,最終得到的限制語句可以為:
[0136] deptMD5No as deptNo;
[0137] 因此,將上述限制語句加入到歷史查詢語句中,最終可以得到目標(biāo)查詢語句為:
[0138] select deptMD5No as deptNo,deptName,sales,score from dept。
[0139] 根據(jù)上述目標(biāo)查詢語句最終得到的查詢結(jié)果可以參見表5所示:
[0140] 表5:
[0142] 從表5中可以看到,deptNo這一列的數(shù)據(jù)已經(jīng)被屏蔽掉,所以用戶獲取到的結(jié)果中 將不再顯示deptNo這一列,避免信息在查詢時(shí)被泄露。
[0143] 圖8為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)查詢控制裝置的結(jié)構(gòu)示意圖。如圖8所示,該 裝置可以包括:
[0144]語句獲取模塊11,用于獲取用戶輸入的原始查詢語句。
[0145] 語句分析模塊12,用于對(duì)所述原始查詢語句進(jìn)行語句分析,得到與所述原始查詢 語句對(duì)應(yīng)的語句信息。
[0146] 信息判斷模塊13,用于判斷所述語句信息是否滿足預(yù)設(shè)限制條件。
[0147] 語句加工模塊14,用于當(dāng)所述語句信息滿足所述預(yù)設(shè)限制條件時(shí),根據(jù)所述預(yù)設(shè) 限制條件對(duì)所述原始查詢語句進(jìn)行語句加工,得到目標(biāo)查詢語句。
[0148] 發(fā)送模塊15,用于將所述目標(biāo)查詢語句發(fā)送給預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器 返回與所述目標(biāo)查詢語句對(duì)應(yīng)的查詢內(nèi)容。
[0149] 在本發(fā)明另一實(shí)施例中,前述語句轉(zhuǎn)發(fā)模塊15,還用于當(dāng)所述語句信息不滿足所 述預(yù)設(shè)限制條件時(shí),將所述原始查詢語句發(fā)送給所述預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返 回與所述原始查詢語句對(duì)應(yīng)的查詢內(nèi)容。
[0150] 在本發(fā)明一實(shí)施例,如圖9所示,圖8所示的語句分析模塊12包括:
[0151] 格式確定子模塊121,用于確定所述原始查詢語句的語句格式。
[0152] 獲取子模塊122,用于獲取與所述語句格式對(duì)應(yīng)的詞法庫、語法庫和語義庫。
[0153] 詞法分析子模塊123,用于利用所述詞法庫對(duì)所述原始查詢語句進(jìn)行詞法分析,得 到所述原始查詢語句中包含的所有詞語及符號(hào)。
[0154] 語法分析子模塊124,用于利用所述語法庫對(duì)得到的所有詞語和符號(hào)進(jìn)行語法分 析,得到與所述原始查詢語句對(duì)應(yīng)的語法樹。所述語法樹包含多個(gè)節(jié)點(diǎn)。
[0155] 語義分析子模塊125,用于利用所述語法樹上每個(gè)節(jié)點(diǎn)進(jìn)行語義分析,得到所述語 法樹中每個(gè)節(jié)點(diǎn)的語義信息。
[0156] 確定子模塊126,用于將所述語法樹以及所述語法樹中每個(gè)節(jié)點(diǎn)的語音信息作為 所述語句信息。
[0157] 在本發(fā)明一實(shí)施例,如圖10所示,圖8所示的所述語句加工模塊14,包括:
[0158] 限制語句生成子模塊141,用于生成與所述預(yù)設(shè)條件相對(duì)應(yīng)的限制語句。
[0159] 語句結(jié)合模塊142,用于將所述限制語句加入到所述原始查詢語句中作為所述目 標(biāo)查詢語句。
[0160] 本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本發(fā)明的其 它實(shí)施方案。本申請(qǐng)旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或 者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未公開的本技術(shù)領(lǐng)域中的公知常識(shí) 或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的 權(quán)利要求指出。
[0161]應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并 且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。
【主權(quán)項(xiàng)】
1. 一種數(shù)據(jù)查詢控制方法,其特征在于,包括: 獲取用戶輸入的原始查詢語句; 對(duì)所述原始查詢語句進(jìn)行語句分析,得到與所述原始查詢語句對(duì)應(yīng)的語句信息; 判斷所述語句信息是否滿足預(yù)設(shè)限制條件; 當(dāng)所述語句信息滿足所述預(yù)設(shè)限制條件時(shí),根據(jù)所述預(yù)設(shè)限制條件對(duì)所述原始查詢語 句進(jìn)行語句加工,得到目標(biāo)查詢語句; 將所述目標(biāo)查詢語句發(fā)送給預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返回與所述目標(biāo)查詢語 句對(duì)應(yīng)的查詢內(nèi)容。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)所述語句信息不滿足所述預(yù)設(shè)限制條件時(shí),將所述原始查詢語句發(fā)送給所述預(yù)設(shè)服 務(wù)器,以使所述預(yù)設(shè)服務(wù)器返回與所述原始查詢語句對(duì)應(yīng)的查詢內(nèi)容。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述原始查詢語句進(jìn)行語句分析, 得到與所述原始查詢語句對(duì)應(yīng)的語句信息,包括: 確定所述原始查詢語句的語句格式; 獲取與所述語句格式對(duì)應(yīng)的詞法庫、語法庫和語義庫; 利用所述詞法庫對(duì)所述原始查詢語句進(jìn)行詞法分析,得到所述原始查詢語句中包含的 所有詞語及符號(hào); 利用所述語法庫對(duì)得到的所有詞語和符號(hào)進(jìn)行語法分析,得到與所述原始查詢語句對(duì) 應(yīng)的語法樹;所述語法樹包含多個(gè)節(jié)點(diǎn); 利用所述語法樹上每個(gè)節(jié)點(diǎn)進(jìn)行語義分析,得到所述語法樹中每個(gè)節(jié)點(diǎn)的語義信息; 將所述語法樹以及所述語法樹中每個(gè)節(jié)點(diǎn)的語音信息作為所述語句信息。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)限制條件包括:查詢權(quán)限、查詢結(jié) 果條數(shù)限制和/或查詢結(jié)果字?jǐn)?shù)限制。5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述預(yù)設(shè)限制條件對(duì)所述原始查 詢語句進(jìn)行語句加工,得到目標(biāo)查詢語句,包括: 生成與所述預(yù)設(shè)條件相對(duì)應(yīng)的限制語句; 將所述限制語句加入到所述原始查詢語句中作為所述目標(biāo)查詢語句。6. -種數(shù)據(jù)查詢控制裝置,其特征在于,包括: 語句獲取模塊,用于獲取用戶輸入的原始查詢語句; 語句分析模塊,用于對(duì)所述原始查詢語句進(jìn)行語句分析,得到與所述原始查詢語句對(duì) 應(yīng)的語句信息; 信息判斷模塊,用于判斷所述語句信息是否滿足預(yù)設(shè)限制條件; 語句加工模塊,用于當(dāng)所述語句信息滿足所述預(yù)設(shè)限制條件時(shí),根據(jù)所述預(yù)設(shè)限制條 件對(duì)所述原始查詢語句進(jìn)行語句加工,得到目標(biāo)查詢語句; 發(fā)送模塊,用于將所述目標(biāo)查詢語句發(fā)送給預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返回與 所述目標(biāo)查詢語句對(duì)應(yīng)的查詢內(nèi)容。7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述發(fā)送模塊,還用于當(dāng)所述語句信息不滿足所述預(yù)設(shè)限制條件時(shí),將所述原始查詢 語句發(fā)送給所述預(yù)設(shè)服務(wù)器,以使所述預(yù)設(shè)服務(wù)器返回與所述原始查詢語句對(duì)應(yīng)的查詢內(nèi) 容。8. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述語句分析模塊包括: 格式確定子模塊,用于確定所述原始查詢語句的語句格式; 獲取子模塊,用于獲取與所述語句格式對(duì)應(yīng)的詞法庫、語法庫和語義庫; 詞法分析子模塊,用于利用所述詞法庫對(duì)所述原始查詢語句進(jìn)行詞法分析,得到所述 原始查詢語句中包含的所有詞語及符號(hào); 語法分析子模塊,用于利用所述語法庫對(duì)得到的所有詞語和符號(hào)進(jìn)行語法分析,得到 與所述原始查詢語句對(duì)應(yīng)的語法樹;所述語法樹包含多個(gè)節(jié)點(diǎn); 語義分析子模塊,用于利用所述語法樹上每個(gè)節(jié)點(diǎn)進(jìn)行語義分析,得到所述語法樹中 每個(gè)節(jié)點(diǎn)的語義信息; 確定子模塊,用于將所述語法樹以及所述語法樹中每個(gè)節(jié)點(diǎn)的語音信息作為所述語句 信息。9. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述預(yù)設(shè)限制條件包括:查詢權(quán)限、查詢結(jié) 果條數(shù)限制和/或查詢結(jié)果字?jǐn)?shù)限制。10. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述語句加工模塊,包括: 限制語句生成子模塊,用于生成與所述預(yù)設(shè)條件相對(duì)應(yīng)的限制語句; 語句結(jié)合模塊,用于將所述限制語句加入到所述原始查詢語句中作為所述目標(biāo)查詢語 句。
【文檔編號(hào)】G06F17/30GK105868249SQ201510939191
【公開日】2016年8月17日
【申請(qǐng)日】2015年12月15日
【發(fā)明人】劉宏斌, 國(guó)鐵龍
【申請(qǐng)人】樂視網(wǎng)信息技術(shù)(北京)股份有限公司