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

一種數(shù)據(jù)權(quán)限控制方法和系統(tǒng)的制作方法

文檔序號:6506804閱讀:212來源:國知局
一種數(shù)據(jù)權(quán)限控制方法和系統(tǒng)的制作方法
【專利摘要】本申請?zhí)峁┮环N數(shù)據(jù)權(quán)限控制方法和系統(tǒng)。其中一種數(shù)據(jù)權(quán)限控制方法包括獲取操作體輸入的查詢條件,并生成與查詢條件匹配的關(guān)系表達式;解析關(guān)系表達式,獲得與關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu);將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句;執(zhí)行結(jié)構(gòu)化查詢語言語句以訪問數(shù)據(jù)。因此在數(shù)據(jù)權(quán)限的條件變更后,查詢條件作為對數(shù)據(jù)權(quán)限的條件的概括也發(fā)生變更,進而可以直接生成變更后的查詢條件匹配的生產(chǎn)關(guān)系表達式,進而得到結(jié)構(gòu)化查詢語言語句,通過執(zhí)行結(jié)構(gòu)化查詢語言語句實現(xiàn)對數(shù)據(jù)的訪問,從而無需由程序開發(fā)人員在查詢條件變更后修改程序代碼,進而節(jié)省人力成本,節(jié)約時間,并提高工作效率。
【專利說明】一種數(shù)據(jù)權(quán)限控制方法和系統(tǒng)

【技術(shù)領(lǐng)域】
[0001]本申請屬于數(shù)據(jù)庫控制【技術(shù)領(lǐng)域】,尤其涉及一種數(shù)據(jù)權(quán)限控制方法和系統(tǒng)。

【背景技術(shù)】
[0002]數(shù)據(jù)權(quán)限可以應(yīng)用于企業(yè)應(yīng)用、互聯(lián)網(wǎng)服務(wù)以及云計算服務(wù)等各類軟件的權(quán)限體系中,并且所述數(shù)據(jù)權(quán)限可以控制各類軟件對數(shù)據(jù)的訪問。
[0003]例如在對某個假單審批系統(tǒng)進行數(shù)據(jù)訪問時,數(shù)據(jù)權(quán)限可以是“經(jīng)理能審批自己部門的假單”,則程序開發(fā)人員根據(jù)該數(shù)據(jù)權(quán)限進行程序開發(fā),在程序代碼中加入“自己部門”的查詢條件,以控制經(jīng)理對自己部門假單的訪問。然而,隨著業(yè)務(wù)的發(fā)展,訪問假單審批系統(tǒng)的數(shù)據(jù)權(quán)限變更為“經(jīng)理能審批自己部門的且不超過三天的假單”,其限定的條件相應(yīng)的發(fā)生變更,則程序開發(fā)人員修改程序的查詢條件為“自己部門+天數(shù)〈3”,對應(yīng)的程序代碼可以是 if (department==self&&days〈3) {d0...}。
[0004]綜上所述,現(xiàn)有數(shù)據(jù)權(quán)限變更后,業(yè)務(wù)人員需要將變更后的數(shù)據(jù)權(quán)限提交給程序開發(fā)人員,再由程序開發(fā)人員更改程序代碼以匹配變更后的數(shù)據(jù)權(quán)限,從而造成權(quán)限變更延遲,并且造成人力和時間的消耗。


【發(fā)明內(nèi)容】

[0005]有鑒于此,本申請的目的在于提供一種數(shù)據(jù)權(quán)限控制方法,在所述數(shù)據(jù)權(quán)限控制方法使用中,業(yè)務(wù)人員可自行調(diào)整數(shù)據(jù)權(quán)限的控制邏輯,無需由程序開發(fā)人員進行程序代碼的修改,從而節(jié)省人力成本,節(jié)約時間,并提高工作效率。本申請還提供了一種數(shù)據(jù)權(quán)限控制系統(tǒng),用以保證上述方法在實際中的實現(xiàn)及應(yīng)用。技術(shù)方案如下:
[0006]一方面,本申請?zhí)峁┮环N數(shù)據(jù)權(quán)限控制方法,包括:
[0007]獲取操作體輸入的查詢條件,并生成與所述查詢條件匹配的關(guān)系表達式,其中所述查詢條件概括所述數(shù)據(jù)權(quán)限訪問數(shù)據(jù)的條件;
[0008]解析所述關(guān)系表達式,獲得與所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中所述邏輯數(shù)據(jù)結(jié)構(gòu)可被程序閱讀;
[0009]將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句,其中所述結(jié)構(gòu)化查詢語言語句與所述關(guān)系表達式對應(yīng)相同的所述查詢條件;
[0010]執(zhí)行所述結(jié)構(gòu)化查詢語言語句以訪問數(shù)據(jù)。
[0011]優(yōu)選地,解析所述關(guān)系表達式,獲得與所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu)包括:
[0012]獲取所述關(guān)系表達式中所有的運算節(jié)點,其中所述運算節(jié)點包括運算符、運算函數(shù)、運算量和領(lǐng)域?qū)傩裕?br> [0013]依據(jù)每個所述運算節(jié)點在所述關(guān)系表達式中的運算順序,構(gòu)建所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中每個所述運算節(jié)點作為所述邏輯數(shù)據(jù)結(jié)構(gòu)中的邏輯節(jié)點。
[0014]優(yōu)選地,所述邏輯數(shù)據(jù)結(jié)構(gòu)中邏輯節(jié)點的級別依據(jù)所述運算順序進行劃分。
[0015]優(yōu)選地,將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句包括:
[0016]遍歷所述邏輯數(shù)據(jù)結(jié)構(gòu)中的各個邏輯節(jié)點,獲取各個邏輯節(jié)點的運算順序,并將所述運算順序采用結(jié)構(gòu)化查詢語言編寫,獲得結(jié)構(gòu)化查詢語言語句。
[0017]優(yōu)選地,生成與數(shù)據(jù)權(quán)限的查詢條件匹配的關(guān)系表達式包括:
[0018]確定與所述查詢條件對應(yīng)的運算量,并獲取與所述查詢條件對應(yīng)的運算字符,其中所述運算量包括常量和變量中的至少一種,所述運算字符包括運算符和運算函數(shù)中的至少一種;
[0019]依據(jù)所述查詢條件組合所述運算量和所述運算字符,生成所述關(guān)系表達式。
[0020]另一方面,本申請?zhí)峁┮环N數(shù)據(jù)權(quán)限控制系統(tǒng),包括:
[0021]表達式生成單元,用于獲取操作體輸入的查詢條件,并生成與所述查詢條件匹配的關(guān)系表達式,其中所述查詢條件概括所述數(shù)據(jù)權(quán)限訪問數(shù)據(jù)的條件;
[0022]解析單元,用于解析所述關(guān)系表達式,獲得與所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中所述邏輯數(shù)據(jù)結(jié)構(gòu)可被程序閱讀;
[0023]轉(zhuǎn)換單元,用于將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句,其中所述結(jié)構(gòu)化查詢語言語句與所述關(guān)系表達式對應(yīng)相同的所述查詢條件;
[0024]執(zhí)行單元,用于執(zhí)行所述結(jié)構(gòu)化查詢語言語句以訪問數(shù)據(jù)。
[0025]優(yōu)選地,所述解析單元包括:
[0026]節(jié)點獲取子單元,用于獲取所述關(guān)系表達式中所有的運算節(jié)點,其中所述運算節(jié)點包括運算符、運算函數(shù)、運算量和領(lǐng)域?qū)傩裕?br> [0027]構(gòu)建子單元,用于依據(jù)每個所述運算節(jié)點在所述關(guān)系表達式中的運算順序,構(gòu)建所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中每個所述運算節(jié)點作為所述邏輯數(shù)據(jù)結(jié)構(gòu)中的邏輯節(jié)點。
[0028]優(yōu)選地,所述邏輯數(shù)據(jù)結(jié)構(gòu)中邏輯節(jié)點的級別依據(jù)所述運算順序進行劃分。
[0029]優(yōu)選地,所述轉(zhuǎn)換單元具體用于遍歷所述邏輯數(shù)據(jù)結(jié)構(gòu)中的各個邏輯節(jié)點,獲取各個邏輯節(jié)點的運算順序,并將所述運算順序采用結(jié)構(gòu)化查詢語言編寫,獲得結(jié)構(gòu)化查詢語目語句。
[0030]優(yōu)選地,所述表達式生成單元包括:
[0031]獲取子單元,用于確定與所述查詢條件對應(yīng)的運算量,并獲取與所述查詢條件對應(yīng)的運算字符,其中所述運算量包括常量和變量中的至少一種,所述運算字符包括運算符和運算函數(shù)中的至少一種;
[0032]生成子單元,用于依據(jù)所述查詢條件組合所述運算量和所述運算字符,生成所述關(guān)系表達式。
[0033]在本申請中,獲取操作體輸入的查詢條件后,可以生成與查詢條件匹配的關(guān)系表達式。在解析關(guān)系表達式后獲得與關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),并將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句,執(zhí)行所述結(jié)構(gòu)化查詢語言語句以訪問數(shù)據(jù)。也就是說在數(shù)據(jù)權(quán)限的條件變更后,查詢條件作為對數(shù)據(jù)權(quán)限的條件的概括也發(fā)生變更,進而可以直接生成變更后的查詢條件匹配的生產(chǎn)關(guān)系表達式,進而得到結(jié)構(gòu)化查詢語言語句,通過執(zhí)行結(jié)構(gòu)化查詢語言語句實現(xiàn)對數(shù)據(jù)的訪問,從而無需由程序開發(fā)人員在查詢條件變更后修改程序代碼,進而節(jié)省人力成本,節(jié)約時間,并提高工作效率。

【專利附圖】

【附圖說明】
[0034]為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1是本申請?zhí)峁┑囊环N數(shù)據(jù)權(quán)限控制方法的流程圖;
[0036]圖2是本申請?zhí)峁┑臄?shù)據(jù)權(quán)限控制方法中邏輯數(shù)據(jù)結(jié)構(gòu)的一種示意圖;
[0037]圖3是本申請?zhí)峁┑臄?shù)據(jù)權(quán)限控制方法中邏輯數(shù)據(jù)結(jié)構(gòu)的另一種示意圖;
[0038]圖4是本申請?zhí)峁┑臄?shù)據(jù)權(quán)限控制方法中邏輯數(shù)據(jù)結(jié)構(gòu)的再一種示意圖;
[0039]圖5是本申請?zhí)峁┑囊环N數(shù)據(jù)權(quán)限控制系統(tǒng)的結(jié)構(gòu)示意圖;
[0040]圖6是本申請?zhí)峁┑臄?shù)據(jù)權(quán)限控制系統(tǒng)中表達式生成單元的結(jié)構(gòu)示意圖;
[0041]圖7是本申請?zhí)峁┑臄?shù)據(jù)權(quán)限控制系統(tǒng)中解析單元的結(jié)構(gòu)示意圖。

【具體實施方式】
[0042]下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
[0043]請參閱圖1,其示出了本申請實施例提供的一種數(shù)據(jù)權(quán)限控制方法的一種流程圖,可以包括:
[0044]步驟101:獲取操作體輸入的查詢條件,并生成與所述查詢條件匹配的關(guān)系表達式,其中所述查詢條件概括所述數(shù)據(jù)權(quán)限訪問數(shù)據(jù)的條件。
[0045]在本實施例中,操作體可以是業(yè)務(wù)人員,也可以是程序開發(fā)人員。當(dāng)然,為了保證數(shù)據(jù)安全性,避免其他人員隨意更改數(shù)據(jù),在獲取操作體輸入的查詢條件之前對操作體的身份進行識別,當(dāng)識別的操作體為允許更改查詢條件的操作體時,方獲取操作體輸入的查詢條件。
[0046]其中對操作體的身份識別可以采用現(xiàn)有用戶名和密碼匹配的方式進行識別。在操作體當(dāng)前輸入的用戶名和密碼匹配成功的情況下,表明操作體為允許更改查詢條件的操作體。
[0047]為了方便操作體輸入查詢條件,可以在電子設(shè)備中創(chuàng)建輸入界面,并且輸入界面上可以提供多個文本框,操作體可以將上述查詢條件輸入到文本框中。電子設(shè)備在獲取到查詢條件后,生成查詢條件匹配的關(guān)系表達式。
[0048]其中生成查詢條件匹配的關(guān)系表達式的過程可以是:確定與查詢條件對應(yīng)的運算量,并獲取與所述查詢條件對應(yīng)的運算字符,依據(jù)所述查詢條件組合所述運算量和所述運算字符,生成所述關(guān)系表達式。其中所述運算量包括常量和變量中的至少一種,所述運算字符包括運算符和運算函數(shù)中的至少一種。例如查詢條件是自己部門+天數(shù)〈3,則關(guān)系表達式可以是(a)and (b〈3),其中a和b為變量,a表示自己部門,b表示天數(shù),3為常量,and和〈為運算符。
[0049]在本實施例中,運算符可以包括算術(shù)運算符、比較運算符和邏輯運算符。其中算術(shù)運算符按照優(yōu)先級可以包括:()、*、/、+、_。比較運算符可以包括:>、=、〈、>=、〈=。邏輯運算符按照優(yōu)先級可以包括:not、and、or。當(dāng)然本實施例中的運算符還可以包括其他運算符,本實施例不再列舉。
[0050]運算函數(shù)可以包括:數(shù)學(xué)函數(shù)、字符串函數(shù)和日期函數(shù)。其中,數(shù)學(xué)函數(shù)可以包括:ROUND函數(shù),表示四舍五入;CEIL函數(shù),返回大于或等于給出數(shù)字的最小整數(shù);FLOOR函數(shù),表示對給定的數(shù)字取整數(shù)。字符串函數(shù)可以包括=1wer函數(shù),表示將全部的大寫字母都可以變?yōu)樾懽帜?;upper函數(shù),表示將輸入的字符串變?yōu)榇髮懽帜?;COncat函數(shù),表示字符串連接,可以連接兩個字符串;substr函數(shù),表示字符串截??;length函數(shù),表示取出字符串的長度;instr函數(shù),表示查找在一個字符串中是否有指定的字符串,如果有,則返回其位置,沒有則返回O ;trim函數(shù),表示去掉左右空格的函數(shù)。日期函數(shù)可以包括:SySdate函數(shù),表示當(dāng)前日期;T0_DATE (string,’ format’),表示將字符串轉(zhuǎn)換為日期。
[0051]需要說明的是:上述僅列舉了部分運算符和運算函數(shù),對于其他運算符和運算函數(shù)本實施例不再一一列舉。其他未列舉的運算符和運算函數(shù)也可以應(yīng)用到本實施例提供的數(shù)據(jù)權(quán)限控制方法中。
[0052]步驟102:解析所述關(guān)系表達式,獲得與所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中所述邏輯數(shù)據(jù)結(jié)構(gòu)可被程序閱讀。
[0053]在生成關(guān)系表達式后,將關(guān)系表達式中每個單獨組成作為運算節(jié)點,并獲取所有運算節(jié)點,其中所述運算節(jié)點包括運算符、運算函數(shù)、運算量和領(lǐng)域?qū)傩浴?br> [0054]其中領(lǐng)域?qū)傩允菍⒛骋粋€體關(guān)聯(lián)到另一個體的屬性。例如學(xué)生借圖書,在學(xué)校的數(shù)據(jù)庫中并沒有記載學(xué)生借圖書這行為,而是在數(shù)據(jù)庫中記載有學(xué)生表和圖書表。學(xué)生表和圖書表的關(guān)聯(lián)則稱為領(lǐng)域,相對應(yīng)的,學(xué)生表中記錄的學(xué)生性別、身高、年齡和年紀,以及圖書表中記錄的圖書類型、名稱和頁數(shù)則是領(lǐng)域?qū)傩浴?br> [0055]依據(jù)每個所述運算節(jié)點在所述關(guān)系表達式中的運算順序,構(gòu)建所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中每個所述運算節(jié)點作為所述邏輯數(shù)據(jù)結(jié)構(gòu)中的邏輯節(jié)點。
[0056]在本實施例中,運算順序可以是關(guān)系表達式中運算節(jié)點的運算先后順序,如算術(shù)運算符的優(yōu)先級高于比較運算符,則上述關(guān)系表達式(a)and (b〈3)的邏輯數(shù)據(jù)結(jié)構(gòu)可以參閱圖2所示。其中,每個方框表示邏輯節(jié)點。
[0057]為了使本領(lǐng)域技術(shù)人員可以更好地理解解析關(guān)系表達式至獲得邏輯數(shù)據(jù)結(jié)構(gòu)的過程,本實施例列舉其他關(guān)系表達式進行說明,如關(guān)系表達式2*(3+4)的邏輯數(shù)據(jù)結(jié)構(gòu)可以參閱圖3所示。而關(guān)系表達式a〈4or(b>3)的邏輯數(shù)據(jù)結(jié)構(gòu)可以參閱圖4所示。
[0058]從圖2至圖4示出的邏輯數(shù)據(jù)結(jié)構(gòu)的示意圖中可以看出,邏輯數(shù)據(jù)結(jié)構(gòu)中邏輯節(jié)點的級別依據(jù)所述運算順序進行劃分,關(guān)系表達式的結(jié)果作為邏輯數(shù)據(jù)結(jié)構(gòu)的根節(jié)點,最后的第η個運算順序?qū)?yīng)的運算節(jié)點作為根節(jié)點的第一節(jié)點,第η-1個運算順序?qū)?yīng)的運算節(jié)點作為根節(jié)點的第二節(jié)點,……,第一個運算順序?qū)?yīng)的運算節(jié)點作為根節(jié)點的第η節(jié)點。并且根節(jié)點、第一節(jié)點、第二節(jié)點、……、第η節(jié)點可以作為邏輯數(shù)據(jù)結(jié)構(gòu)的邏輯節(jié)點。
[0059]需要說明的是:在本實施例中解析關(guān)系表達式,獲得與關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu)可以采用語言識別器,該語言識別器采用antlr (Another Tool for LanguageRecognit1n,又一個語言識別工具)技術(shù)開發(fā)程序代碼。
[0060]例如:EQ:"==";LE:"〈=";GE:">=";LT:’〈’;GT:’>’。其示出了比較運算符使用antlr技術(shù)開發(fā)得到的標(biāo)示符,其中EQ相當(dāng)于==,LE相當(dāng)于<=,GE相當(dāng)于>=,LT相當(dāng)于〈,GT相當(dāng)于〉。
[0061]步驟103:將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句,其中所述結(jié)構(gòu)化查詢語言語句與所述關(guān)系表達式對應(yīng)相同的所述查詢條件。
[0062]其中,邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言(Structured Query Language, SQL)表達式的過程可以是:遍歷邏輯數(shù)據(jù)結(jié)構(gòu)中的各個邏輯節(jié)點,獲取各個邏輯節(jié)點的運算順序,并將所述運算順序采用SQL編寫,獲得SQL語句。
[0063]在本實施例中,遍歷邏輯數(shù)據(jù)結(jié)構(gòu)中各個邏輯節(jié)點可以是按照各個邏輯節(jié)點在邏輯數(shù)據(jù)結(jié)構(gòu)中的級別進行遍歷。例如可以從第η節(jié)點、第η-1節(jié)點、……、根節(jié)點的順序進行遍歷。
[0064]在遍歷各個邏輯節(jié)點后,本實施例通過數(shù)據(jù)權(quán)限邏輯注入器將邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為SQL語句。其中,數(shù)據(jù)權(quán)限邏輯注入器作為將邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為SQL語句的介質(zhì),其工作過程可以是:將圖2至圖4示出的邏輯數(shù)據(jù)結(jié)構(gòu)中每個邏輯節(jié)點按照邏輯節(jié)點類型作為SQL語句中相對應(yīng)的參數(shù),使用迭代遍歷的方法遍歷所有邏輯節(jié)點,再使用SQL語句的常用子句組合SQL語句中相對應(yīng)的參數(shù),生成邏輯數(shù)據(jù)結(jié)構(gòu)的SQL語句。
[0065]邏輯節(jié)點類型包括運算符類型、運算函數(shù)類型、運算量類型和領(lǐng)域?qū)傩灶愋停瑢⑦壿嫻?jié)點按照邏輯節(jié)點類型作為SQL語句中相對應(yīng)的參數(shù)是指將邏輯節(jié)點作為SQL語句中具有相同類型的參數(shù)。如邏輯節(jié)點屬于運算符類型的邏輯節(jié)點時,SQL語句中相對應(yīng)的參數(shù)也是運算符類型的參數(shù)。
[0066]當(dāng)遍歷所有邏輯節(jié)點后,得到SQL語句使用的全部參數(shù),再使用常用子句,如查詢子句中的FROM子句或者WHERE子句將全部參數(shù)進行組合,得到與邏輯數(shù)據(jù)結(jié)構(gòu)表示相同查詢條件的SQL語句。
[0067]步驟104:執(zhí)行SQL語句以訪問數(shù)據(jù)。
[0068]在數(shù)據(jù)庫中執(zhí)行SQL語句時,首先判斷SQL語句是否為該數(shù)據(jù)庫的執(zhí)行語句,如果是,則在數(shù)據(jù)庫執(zhí)行SQL語句,以訪問該數(shù)據(jù)庫保持的數(shù)據(jù)。
[0069]應(yīng)用上述技術(shù)方案,獲取操作體輸入的查詢條件后,可以生成與查詢條件匹配的關(guān)系表達式。在解析關(guān)系表達式后獲得與關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),并將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句,執(zhí)行所述結(jié)構(gòu)化查詢語言語句以訪問數(shù)據(jù)。也就是說在數(shù)據(jù)權(quán)限的條件變更后,查詢條件作為對數(shù)據(jù)權(quán)限的條件的概括也發(fā)生變更,進而可以直接生成變更后的查詢條件匹配的生產(chǎn)關(guān)系表達式,進而得到結(jié)構(gòu)化查詢語言語句,通過執(zhí)行結(jié)構(gòu)化查詢語言語句實現(xiàn)對數(shù)據(jù)的訪問,從而無需由程序開發(fā)人員在查詢條件變更后修改程序代碼,進而節(jié)省人力成本,節(jié)約時間,并提高工作效率。
[0070]與上述方法實施例相對應(yīng),本申請實施例還提供一種數(shù)據(jù)權(quán)限控制系統(tǒng),其結(jié)構(gòu)示意圖請參閱圖5所示,可以包括:表達式生成單元11、解析單元12、轉(zhuǎn)換單元13和執(zhí)行單元14。其中,
[0071]表達式生成單元11,用于獲取操作體輸入的查詢條件,并生成與所述查詢條件匹配的關(guān)系表達式,其中所述查詢條件概括所述數(shù)據(jù)權(quán)限訪問數(shù)據(jù)的條件。
[0072]在本實施例中,操作體可以是業(yè)務(wù)人員,也可以是程序開發(fā)人員。并且在獲取操作體輸入的查詢條件之前,可以使用現(xiàn)有用戶名和密碼匹配的方式識別操作體的身體。在操作體當(dāng)前輸入的用戶名和密碼匹配成功的情況下,表明操作體為允許更改查詢條件的操作體。
[0073]為了方便操作體輸入查詢條件,可以在電子設(shè)備中創(chuàng)建輸入界面,并且輸入界面上可以提供多個文本框,操作體可以將上述查詢條件輸入到文本框中。電子設(shè)備在獲取到查詢條件后,生成查詢條件匹配的關(guān)系表達式。
[0074]在本實施例中,表達式生成單元11的結(jié)構(gòu)示意圖可以參閱圖6,包括:獲取子單元111和生成子單元112。
[0075]獲取子單元111,用于確定與所述查詢條件對應(yīng)的運算量,并獲取與所述查詢條件對應(yīng)的運算字符,其中所述運算量包括常量和變量中的至少一種,所述運算字符包括運算符和運算函數(shù)中的至少一種。
[0076]生成子單元112,用于依據(jù)所述查詢條件組合所述運算量和所述運算字符,生成所述關(guān)系表達式。
[0077]獲取子單元111和生成子單元112示出了本實施例提供的數(shù)據(jù)權(quán)限控制系統(tǒng)如何生成查詢條件匹配的關(guān)系表達式。例如當(dāng)查詢條件是自己部門+天數(shù)〈3,通過獲取子單元111和生成子單元112生成的關(guān)系表達式可以是(a)and (b〈3),其中a和b為變量,a表示自己部門,b表示天數(shù),3為常量,and和〈為運算符。
[0078]解析單元12,用于解析所述關(guān)系表達式,獲得與所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中所述邏輯數(shù)據(jù)結(jié)構(gòu)可被程序閱讀。
[0079]在本實施例中,解析單元12的結(jié)構(gòu)示意圖可以參閱圖6,包括:節(jié)點獲取子單元121和構(gòu)建子單元122。
[0080]節(jié)點獲取子單元121,用于獲取所述關(guān)系表達式中所有的運算節(jié)點,其中所述運算節(jié)點包括運算符、運算函數(shù)、運算量和領(lǐng)域?qū)傩浴?br> [0081]構(gòu)建子單元122,用于依據(jù)每個所述運算節(jié)點在所述關(guān)系表達式中的運算順序,構(gòu)建所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中每個所述運算節(jié)點作為所述邏輯數(shù)據(jù)結(jié)構(gòu)中的邏輯節(jié)點。所述邏輯數(shù)據(jù)結(jié)構(gòu)中邏輯節(jié)點的級別依據(jù)所述運算順序進行劃分,其級別的具體劃分可以參閱方法實施例的相關(guān)說明,并且邏輯數(shù)據(jù)結(jié)構(gòu)的示意圖可以參閱圖2至圖4任意一個示意圖,對此本實施例不再加以介紹。
[0082]轉(zhuǎn)換單元13,用于將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句,其中所述結(jié)構(gòu)化查詢語言語句與所述關(guān)系表達式對應(yīng)相同的所述查詢條件。
[0083]其中轉(zhuǎn)換單元13具體用于遍歷所述邏輯數(shù)據(jù)結(jié)構(gòu)中的各個邏輯節(jié)點,獲取各個邏輯節(jié)點的運算順序,并將所述運算順序采用結(jié)構(gòu)化查詢語言編寫,獲得結(jié)構(gòu)化查詢語言語句。
[0084]執(zhí)行單元14,用于執(zhí)行所述結(jié)構(gòu)化查詢語言語句以訪問數(shù)據(jù)。
[0085]執(zhí)行單元14在數(shù)據(jù)庫中執(zhí)行SQL語句時,首先判斷SQL語句是否為該數(shù)據(jù)庫的執(zhí)行語句,如果是,則在數(shù)據(jù)庫執(zhí)行SQL語句,以訪問該數(shù)據(jù)庫保持的數(shù)據(jù)。
[0086]在本實施例中,在數(shù)據(jù)權(quán)限的條件變更后,查詢條件作為對數(shù)據(jù)權(quán)限的條件的概括也發(fā)生變更,進而表達式生成單元11可以直接生成變更后的查詢條件匹配的生產(chǎn)關(guān)系表達式,進而由轉(zhuǎn)換單元13得到結(jié)構(gòu)化查詢語言語句,通過執(zhí)行單元14執(zhí)行結(jié)構(gòu)化查詢語言語句實現(xiàn)對數(shù)據(jù)的訪問,從而無需由程序開發(fā)人員在查詢條件變更后修改程序代碼,進而節(jié)省人力成本,節(jié)約時間,并提高工作效率。
[0087]需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于系統(tǒng)類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0088]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0089]以上所述僅是本申請的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本申請原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本申請的保護范圍。
【權(quán)利要求】
1.一種數(shù)據(jù)權(quán)限控制方法,其特征在于,包括: 獲取操作體輸入的查詢條件,并生成與所述查詢條件匹配的關(guān)系表達式,其中所述查詢條件概括所述數(shù)據(jù)權(quán)限訪問數(shù)據(jù)的條件; 解析所述關(guān)系表達式,獲得與所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中所述邏輯數(shù)據(jù)結(jié)構(gòu)可被程序閱讀; 將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句,其中所述結(jié)構(gòu)化查詢語言語句與所述關(guān)系表達式對應(yīng)相同的所述查詢條件; 執(zhí)行所述結(jié)構(gòu)化查詢語言語句以訪問數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)權(quán)限控制方法,其特征在于,解析所述關(guān)系表達式,獲得與所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu)包括: 獲取所述關(guān)系表達式中所有的運算節(jié)點,其中所述運算節(jié)點包括運算符、運算函數(shù)、運算量和領(lǐng)域?qū)傩裕? 依據(jù)每個所述運算節(jié)點在所述關(guān)系表達式中的運算順序,構(gòu)建所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中每個所述運算節(jié)點作為所述邏輯數(shù)據(jù)結(jié)構(gòu)中的邏輯節(jié)點。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)權(quán)限控制方法,其特征在于,所述邏輯數(shù)據(jù)結(jié)構(gòu)中邏輯節(jié)點的級別依據(jù)所述運算順序進行劃分。
4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)權(quán)限控制方法,其特征在于,將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句包括: 遍歷所述邏輯數(shù)據(jù)結(jié)構(gòu)中的各個邏輯節(jié)點,獲取各個邏輯節(jié)點的運算順序,并將所述運算順序采用結(jié)構(gòu)化查詢語言編寫,獲得結(jié)構(gòu)化查詢語言語句。
5.根據(jù)權(quán)利要求1至4任意一項所述的數(shù)據(jù)權(quán)限控制方法,其特征在于,生成與數(shù)據(jù)權(quán)限的查詢條件匹配的關(guān)系表達式包括: 確定與所述查詢條件對應(yīng)的運算量,并獲取與所述查詢條件對應(yīng)的運算字符,其中所述運算量包括常量和變量中的至少一種,所述運算字符包括運算符和運算函數(shù)中的至少一種; 依據(jù)所述查詢條件組合所述運算量和所述運算字符,生成所述關(guān)系表達式。
6.一種數(shù)據(jù)權(quán)限控制系統(tǒng),其特征在于,包括: 表達式生成單元,用于獲取操作體輸入的查詢條件,并生成與所述查詢條件匹配的關(guān)系表達式,其中所述查詢條件概括所述數(shù)據(jù)權(quán)限訪問數(shù)據(jù)的條件; 解析單元,用于解析所述關(guān)系表達式,獲得與所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中所述邏輯數(shù)據(jù)結(jié)構(gòu)可被程序閱讀; 轉(zhuǎn)換單元,用于將所述邏輯數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為結(jié)構(gòu)化查詢語言語句,其中所述結(jié)構(gòu)化查詢語言語句與所述關(guān)系表達式對應(yīng)相同的所述查詢條件; 執(zhí)行單元,用于執(zhí)行所述結(jié)構(gòu)化查詢語言語句以訪問數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)權(quán)限控制系統(tǒng),其特征在于,所述解析單元包括: 節(jié)點獲取子單元,用于獲取所述關(guān)系表達式中所有的運算節(jié)點,其中所述運算節(jié)點包括運算符、運算函數(shù)、運算量和領(lǐng)域?qū)傩裕? 構(gòu)建子單元,用于依據(jù)每個所述運算節(jié)點在所述關(guān)系表達式中的運算順序,構(gòu)建所述關(guān)系表達式對應(yīng)的邏輯數(shù)據(jù)結(jié)構(gòu),其中每個所述運算節(jié)點作為所述邏輯數(shù)據(jù)結(jié)構(gòu)中的邏輯節(jié)點。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)權(quán)限控制系統(tǒng),其特征在于,所述邏輯數(shù)據(jù)結(jié)構(gòu)中邏輯節(jié)點的級別依據(jù)所述運算順序進行劃分。
9.根據(jù)權(quán)利要求7所述的數(shù)據(jù)權(quán)限控制系統(tǒng),其特征在于,所述轉(zhuǎn)換單元具體用于遍歷所述邏輯數(shù)據(jù)結(jié)構(gòu)中的各個邏輯節(jié)點,獲取各個邏輯節(jié)點的運算順序,并將所述運算順序采用結(jié)構(gòu)化查詢語言編寫,獲得結(jié)構(gòu)化查詢語言語句。
10.根據(jù)權(quán)利要求6至9任意一項所述的數(shù)據(jù)權(quán)限控制系統(tǒng),其特征在于,所述表達式生成單元包括: 獲取子單元,用于確定與所述查詢條件對應(yīng)的運算量,并獲取與所述查詢條件對應(yīng)的運算字符,其中所述運算量包括常量和變量中的至少一種,所述運算字符包括運算符和運算函數(shù)中的至少一種; 生成子單元,用于依據(jù)所述查詢條件組合所述運算量和所述運算字符,生成所述關(guān)系表達式。
【文檔編號】G06F17/30GK104346383SQ201310330464
【公開日】2015年2月11日 申請日期:2013年7月31日 優(yōu)先權(quán)日:2013年7月31日
【發(fā)明者】張寶玉, 郭鐵志, 馬向暉 申請人:上海云端廣告有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
普安县| 宜宾县| 体育| 霞浦县| 阜平县| 成安县| 庐江县| 玉树县| 泰顺县| 黄浦区| 贞丰县| 四川省| 咸阳市| 宁陕县| 自治县| 华宁县| 烟台市| 遂昌县| 来凤县| 明溪县| 合肥市| 五大连池市| 慈溪市| 滦南县| 石门县| 东光县| 紫阳县| 黄冈市| 滨海县| 沙洋县| 舞阳县| 乐陵市| 迁西县| 永康市| 清新县| 吴堡县| 南宁市| 祁连县| 湟源县| 竹山县| 中阳县|