專利名稱:管理多用戶存取預(yù)定義查詢的系統(tǒng)與方法
技術(shù)領(lǐng)域:
總體上講,本發(fā)明涉及一種查詢處理,更具體地講,本發(fā)明涉及對多個(gè)用戶存取永久性存儲(chǔ)的查詢的管理。
背景技術(shù):
數(shù)據(jù)庫是計(jì)算機(jī)化的信息存儲(chǔ)和提取系統(tǒng)。關(guān)系數(shù)據(jù)庫管理系統(tǒng)是一種使用了用于存儲(chǔ)和提取數(shù)據(jù)的關(guān)系技術(shù)的計(jì)算機(jī)數(shù)據(jù)庫管理系統(tǒng)(DBMS)。最流行的數(shù)據(jù)庫類型是關(guān)系數(shù)據(jù)庫、表格數(shù)據(jù)庫,其中,對數(shù)據(jù)加以定義,以致于可以按多種不同的方式重組和存取。分布式數(shù)據(jù)庫是一種可以在網(wǎng)絡(luò)中的不同點(diǎn)之中加以傳布或復(fù)制的數(shù)據(jù)庫。面向?qū)ο蟮木幊虜?shù)據(jù)庫是一種適合于按對象類和子類定義的數(shù)據(jù)的數(shù)據(jù)庫。
不管具體的體系結(jié)構(gòu)如何,均可以對DBMS進(jìn)行構(gòu)造,以支持各種不同類型的操作??梢詫@樣的操作進(jìn)行配置,以提取、添加、修改以及刪除由DBMS所存儲(chǔ)和所管理的信息。標(biāo)準(zhǔn)的數(shù)據(jù)庫存取方法使用諸如結(jié)構(gòu)查詢語言(SQL)的高級查詢語言,支持這些操作。術(shù)語“查詢”是對一組命令的稱謂,這組命令可導(dǎo)致對用于對來自所存儲(chǔ)的數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行處理的操作的執(zhí)行。例如,SQL支持4種查詢操作,即選擇、插入、更新以及刪除。選擇操作從數(shù)據(jù)庫提取數(shù)據(jù),插入操作把新的數(shù)據(jù)添加于數(shù)據(jù)庫,更新操作修改數(shù)據(jù)庫中的數(shù)據(jù),以及刪除操作從數(shù)據(jù)庫去除數(shù)據(jù)。
任何發(fā)出請求的實(shí)體,包括應(yīng)用、操作系統(tǒng)以及處于最高級的用戶,可以針對一或多個(gè)數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布查詢。可以把查詢硬編碼為應(yīng)用的一部分,也可以響應(yīng)于輸入(例如,用戶輸入)生成查詢。給定的發(fā)出請求的實(shí)體可以執(zhí)行多個(gè)不同的查詢。當(dāng)針對一或多個(gè)數(shù)據(jù)庫執(zhí)行每一查詢時(shí),把相應(yīng)的查詢結(jié)果返回至發(fā)出請求的實(shí)體。可以永久性地存儲(chǔ)任何查詢與/或一或多個(gè)相應(yīng)的查詢結(jié)果。
永久性存儲(chǔ)的查詢與/或查詢結(jié)果可以由多個(gè)用戶加以共享。換句話說,可永久性地存儲(chǔ)由給定用戶所創(chuàng)建的查詢,并且可使查詢對其他用戶可用。甚至,該給定用戶還可以創(chuàng)建僅旨在為一或多個(gè)其他用戶加以使用的查詢。例如,數(shù)據(jù)庫管理員可以以某種特定的查詢語言,為那些需要從一或多個(gè)基礎(chǔ)數(shù)據(jù)庫提取信息,但不熟悉該種特定的查詢語言的用戶創(chuàng)建預(yù)定義查詢。從而,這些用戶簡單地需要執(zhí)行這些預(yù)定義查詢,以從一或多個(gè)基礎(chǔ)數(shù)據(jù)庫提取所要求的信息。
然而,在多個(gè)用戶之間共享永久性存儲(chǔ)的查詢的一個(gè)困難在于,特定的預(yù)定義查詢不能精確地滿足不同用戶的需求。例如,假設(shè)某公司中的數(shù)據(jù)庫管理員已使用某種特定的查詢語言,創(chuàng)建了旨在由該公司的銷售經(jīng)理所使用的預(yù)定義查詢。這些預(yù)定義查詢可以是適合于提取那些與不同目標(biāo)組的個(gè)體相關(guān)的數(shù)據(jù)的相當(dāng)復(fù)雜的查詢。還假設(shè)某一給定的銷售經(jīng)理開始銷售該公司的一種新的產(chǎn)品。因此,該給定的銷售經(jīng)理可以使用相應(yīng)的預(yù)定義查詢,標(biāo)識(shí)新產(chǎn)品的相應(yīng)的目標(biāo)組,并且收集關(guān)于該目標(biāo)組中的個(gè)體的信息。
然后,該給定的銷售經(jīng)理可以使用所收集的信息,精確地向所標(biāo)識(shí)的目標(biāo)組中的個(gè)體展開廣告運(yùn)動(dòng)。現(xiàn)在假設(shè)所標(biāo)識(shí)的目標(biāo)組由14~25歲的少年和年輕成年人組成,這些少年和年輕的成年人滿足各種條件,例如,具有特定的嗜好。還假設(shè)存在預(yù)定義查詢,該預(yù)定義查詢適合于提取滿足相同的各種條件的18~25歲的少年和年輕成年人的信息。該給定的銷售經(jīng)理可以使用該預(yù)定義查詢,但為了也能夠請求與那些14~17歲的人相關(guān)的所要求的信息,必須修改該預(yù)定義查詢。
然而,在修改之后,不再把該預(yù)定義查詢指向最初的18~25歲的目標(biāo)組。換句話說,該修改改變了該預(yù)定義查詢的總體意圖。該改變可能影響由僅要求與最初目標(biāo)組相關(guān)的信息的其他用戶對該預(yù)定義查詢的隨后的執(zhí)行。另外,在某些情況下,在修改期間,可能會(huì)無意地破壞預(yù)定義查詢,特別是,如果銷售經(jīng)理不熟悉特定的查詢語言。
因此,存在著對用于在多個(gè)用戶之間共享永久性存儲(chǔ)的查詢,而且不允許對這些永久性存儲(chǔ)的查詢進(jìn)行不希望的修改的有效技術(shù)的需求。
發(fā)明內(nèi)容
總體上講,本發(fā)明涉及一種用于管理存取查詢的方法、系統(tǒng)以及制造物件(article),更具體地講,本發(fā)明涉及一種用于管理多個(gè)用戶對永久性存儲(chǔ)的查詢的存取。
一個(gè)實(shí)施例提供了一種管理由多個(gè)用戶存取對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行的預(yù)定義查詢的方法。該方法包括把一或多個(gè)存取權(quán)與該預(yù)定義查詢的至少某部分相關(guān)聯(lián)。當(dāng)接收到第一用戶存取該預(yù)定義查詢的請求時(shí),根據(jù)存取權(quán),限制該第一用戶對該預(yù)定義查詢的存取。
另一個(gè)實(shí)施例提供了一種管理由多個(gè)發(fā)出請求的實(shí)體存取對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行的預(yù)定義查詢的方法。該方法包括創(chuàng)建存取權(quán),配置存取權(quán)以限制對該預(yù)定義查詢的存取,并且把存取權(quán)與該預(yù)定義查詢相關(guān)聯(lián)。根據(jù)存取權(quán),準(zhǔn)予發(fā)出請求的實(shí)體對預(yù)定義查詢的某部分或全部進(jìn)行存取。
另一個(gè)實(shí)施例提供了一種計(jì)算機(jī)可讀媒體,該計(jì)算機(jī)可讀媒體包括程序,當(dāng)處理器執(zhí)行該程序時(shí),該程序執(zhí)行管理由多個(gè)用戶存取對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行的預(yù)定義查詢的處理。該處理包括把一或多個(gè)存取權(quán)與該預(yù)定義查詢的至少某部分相關(guān)聯(lián)。當(dāng)接收到第一用戶存取該預(yù)定義查詢的請求時(shí),根據(jù)存取權(quán),限制該第一用戶對該預(yù)定義查詢的存取。
另一個(gè)實(shí)施例提供了一種系統(tǒng),該系統(tǒng)包括預(yù)定義查詢、一或多個(gè)存取權(quán)以及查詢管理器。把一或多個(gè)存取權(quán)與該預(yù)定義查詢的至少某部分相關(guān)聯(lián)。對查詢管理器進(jìn)行配置,以接收第一用戶存取該預(yù)定義查詢的請求,并根據(jù)存取權(quán),限制該第一用戶對該預(yù)定義查詢的存取。
通過參照附圖所說明的本發(fā)明的實(shí)施例,可以獲得,并且能夠詳盡了解本發(fā)明上述特性、優(yōu)點(diǎn)以及目的,可以得到以上簡要概括的本發(fā)明的更具體的描述。
然而,應(yīng)該加以注意的是,附圖僅說明了本發(fā)明的典型的實(shí)施例,因此不應(yīng)該將它們視為對本發(fā)明范圍的限制,因?yàn)楸景l(fā)明可支持其它等效的實(shí)施例。
圖1A是用于創(chuàng)建一個(gè)實(shí)施例中永久性存儲(chǔ)的查詢的軟件部件的關(guān)系圖;圖1B是用于管理對一個(gè)實(shí)施例中永久性存儲(chǔ)的查詢的存取的圖1A的軟件部件的關(guān)系圖;圖1C是用于管理對另一個(gè)實(shí)施例中永久性存儲(chǔ)的查詢的存取的圖1A的軟件部件的一個(gè)關(guān)系圖;圖2~3為流程圖,說明了用于管理對一個(gè)實(shí)施例中永久性存儲(chǔ)的查詢的存取的方法;以及圖4是表,說明了一個(gè)實(shí)施例中永久性存儲(chǔ)的查詢和相關(guān)的存取權(quán)。
具體實(shí)施例方式
引言總體上講,本發(fā)明涉及一種用于管理存取查詢的方法、系統(tǒng)以及制造物件,更具體地講,本發(fā)明涉及一種用于管理由多個(gè)用戶對永久性存儲(chǔ)的預(yù)定義查詢的存取的方法、系統(tǒng)以及制造物件。根據(jù)一個(gè)方面,允許多個(gè)用戶使用預(yù)定義查詢改變和考察一或多個(gè)數(shù)據(jù)庫的數(shù)據(jù)。還允許多個(gè)用戶對預(yù)定義查詢進(jìn)行至少某種程度的操作,從而可避免對預(yù)定義查詢的某種形式的總體意圖的任何破壞。為此,把存取權(quán)與預(yù)定義查詢的一或多個(gè)部分相關(guān)聯(lián)。例如,這些存取權(quán)可以類似于數(shù)據(jù)庫列的存取權(quán)。在一個(gè)實(shí)施例中,把給定預(yù)定義查詢中的每一個(gè)查詢條件與存取權(quán)(也稱為“特權(quán)”)相關(guān)聯(lián)。對關(guān)于具體查詢條件的特權(quán)進(jìn)行配置,以規(guī)定什么樣的相應(yīng)的查詢工具將允許具體用戶處理這種查詢條件。
數(shù)據(jù)處理環(huán)境把本發(fā)明的一個(gè)實(shí)施例作為隨計(jì)算機(jī)系統(tǒng)一起使用的程序產(chǎn)品加以實(shí)現(xiàn)。該程序產(chǎn)品的一或多個(gè)程序定義了各實(shí)施例(包括此處所描述的方法)的功能,并且可以將該程序產(chǎn)品的一或多個(gè)程序包含在各種信號承載媒體上。僅說明性地把信號承載媒體描述為包括,但不局限于(i)永久性地存儲(chǔ)在非可寫存儲(chǔ)媒體(例如,計(jì)算機(jī)中的只讀存儲(chǔ)設(shè)備,諸如CD-ROM驅(qū)動(dòng)器可讀的CD-ROM盤等)上的信息;(ii)存儲(chǔ)在可寫存儲(chǔ)媒體(例如,軟盤驅(qū)動(dòng)器中的軟盤或硬盤驅(qū)動(dòng)器)上的可更改信息;或者(iii)通過通信媒體傳送給計(jì)算機(jī)的信息,例如通過計(jì)算機(jī)或電話網(wǎng)絡(luò),包括無線通信。特別是,后一個(gè)實(shí)施例包括從因特網(wǎng)和其它網(wǎng)絡(luò)上下載的信息。當(dāng)執(zhí)行指導(dǎo)本發(fā)明的功能的計(jì)算機(jī)可讀的指令時(shí),這樣的信號承載媒體代表了本發(fā)明的實(shí)施例。
總體上講,為實(shí)現(xiàn)本發(fā)明實(shí)施例所執(zhí)行的例程,可以作為操作系統(tǒng)、或具體應(yīng)用、部件、程序、模塊、對象或指令序列的一部分。通常,本發(fā)明的軟件由大量指令構(gòu)成,本地計(jì)算機(jī)將把這些指令翻譯成機(jī)器可讀的格式,從而翻譯成可加以執(zhí)行的指令。而且,程序由變量和數(shù)據(jù)結(jié)構(gòu)構(gòu)成,變量和數(shù)據(jù)結(jié)構(gòu)或者本地駐留于程序中,或者出現(xiàn)在存儲(chǔ)器中或存儲(chǔ)設(shè)備上。另外,還可以根據(jù)某一應(yīng)用,標(biāo)識(shí)以下所描述的各種程序,將針對該應(yīng)用在本發(fā)明的某一具體實(shí)施例中實(shí)現(xiàn)這些程序。然而,應(yīng)該認(rèn)識(shí)到,使用隨后的任何一種具體的命名法,僅僅是為了方便,因此不應(yīng)把本發(fā)明局限于在任何通過這樣的命名法所標(biāo)識(shí)與/或所意指的特定應(yīng)用中單獨(dú)使用。
可以以包括至少一個(gè)網(wǎng)絡(luò)客戶計(jì)算機(jī)和至少一個(gè)服務(wù)器計(jì)算機(jī)在內(nèi)的硬件/軟件配置,實(shí)現(xiàn)本發(fā)明的實(shí)施例。而且,還可以把本發(fā)明的實(shí)施例施加于任何可比較的硬件配置,而不管計(jì)算機(jī)系統(tǒng)是復(fù)雜的、多用戶計(jì)算裝置、單用戶工作站、還是不具有其自身的非易失存儲(chǔ)器的網(wǎng)絡(luò)設(shè)備。另外,還應(yīng)該認(rèn)識(shí)到,盡管可以參照具體的查詢語言,包括SQL,但本發(fā)明并不局限于某一特定的語言、標(biāo)準(zhǔn)或版本。因此,本技術(shù)領(lǐng)域中的技術(shù)人員將會(huì)意識(shí)到,本發(fā)明也適用于其它查詢語言,并且本發(fā)明還適用于某一特定查詢語言今后的變化以及當(dāng)前未知的其它查詢語言。
優(yōu)選實(shí)施例以下,參照本發(fā)明的實(shí)施例。然而,應(yīng)該認(rèn)識(shí)到,本發(fā)明不局限于具體描述的實(shí)施例。相反,為了實(shí)現(xiàn)和實(shí)踐本發(fā)明,無論是否與不同的實(shí)施例相關(guān),可以考慮下列特性和元素的任意組合。另外,在各實(shí)施例中,本發(fā)明還提供了優(yōu)于現(xiàn)有技術(shù)的眾多優(yōu)點(diǎn)。然而,盡管本發(fā)明的實(shí)施例可以實(shí)現(xiàn)優(yōu)于其它可能的方案與/或優(yōu)于現(xiàn)有的技術(shù)的優(yōu)點(diǎn),但某一給定實(shí)施例是否實(shí)現(xiàn)了某一具體的優(yōu)點(diǎn)并不構(gòu)成對本發(fā)明的限制。因此,以下的方面、特性、實(shí)施例以及優(yōu)點(diǎn)僅為說明性的,如無特別說明,不應(yīng)把它們視為所附權(quán)利要求的元素或?qū)λ綑?quán)利要求的限制。
現(xiàn)在參照圖1A,圖1A說明了一個(gè)實(shí)施例中的軟件部件的關(guān)系圖。根據(jù)一個(gè)方面,對這些軟件部件進(jìn)行配置,以從使用查詢的數(shù)據(jù)源得到數(shù)據(jù)的子集。還可以對軟件部件進(jìn)一步地加以配置,以永久性地存儲(chǔ)查詢,以及創(chuàng)建存取權(quán)與/或把存取權(quán)與永久性存儲(chǔ)的查詢相關(guān)聯(lián)。
僅說明性地把軟件部件描述為包括發(fā)出請求的實(shí)體110、查詢管理器140以及用戶接口190。根據(jù)一個(gè)方面,發(fā)出請求的實(shí)體110針對數(shù)據(jù)源130的數(shù)據(jù)132發(fā)布查詢,例如查詢120。數(shù)據(jù)源130代表任何一個(gè)數(shù)據(jù)集合,而不管具體的物理表示。在一個(gè)實(shí)施例中,數(shù)據(jù)源130包括一或多個(gè)數(shù)據(jù)庫??筛鶕?jù)關(guān)系方案(可由SQL查詢加以存取)或根據(jù)XML方案(可由XML查詢加以存取),對該一個(gè)或多個(gè)數(shù)據(jù)庫中的每一個(gè)數(shù)據(jù)庫加以組織。然而,本發(fā)明并不局限于某一特定的方案,并可以考慮向當(dāng)前尚不知曉的方案擴(kuò)展。如此處所使用的術(shù)語“方案”總體地指數(shù)據(jù)的具體的排布。
可以預(yù)定義發(fā)出請求的實(shí)體110所發(fā)布的查詢120,也可以響應(yīng)于所接收的輸入,例如經(jīng)由用戶接口190所接收的輸入(例如,用戶輸入),生成發(fā)出請求的實(shí)體110所發(fā)布的查詢120。查詢管理器140執(zhí)行針對數(shù)據(jù)源130的數(shù)據(jù)132的查詢120,以獲得查詢結(jié)果170。接下來,把查詢結(jié)果170提交給發(fā)出請求的實(shí)體110。
在一個(gè)實(shí)施例中,查詢120為SQL查詢。最普遍執(zhí)行的SQL查詢之一為選擇語句。選擇語句通常具有這樣的格式“SELECT<子句>FROM<子句>WHERE<子句>GROUP BY<子句>HAVING<子句>ORDER BY<子句>”。子句通常必須遵循該順序。只有SELECT(選擇)和FROM(從)子句是必需的,所有其它子句都是可選的。一般情況下,選擇語句的結(jié)果為從存儲(chǔ)于關(guān)系數(shù)據(jù)庫(例如,圖1的數(shù)據(jù)源130)中的一或多個(gè)現(xiàn)存的表中所提取的數(shù)據(jù)的子集(例如,數(shù)據(jù)132),其中,F(xiàn)ROM子句識(shí)別將從中選擇數(shù)據(jù)的一或多個(gè)表的名稱。把數(shù)據(jù)的該子集作為新的表加以對待,并將其命名為結(jié)果表。WHERE(在如下條件下)子句確定應(yīng)把哪些行返回于結(jié)果表中。通常,WHERE子句包含一或多個(gè)必須由結(jié)果表中所返回的每一行所滿足的查詢條件。這些一或多個(gè)查詢條件通常為一或多個(gè)謂詞,每一個(gè)謂詞使用適當(dāng)?shù)谋容^操作符,例如“=”、“>”以及“<”,指定來自某些列的兩個(gè)值、常數(shù)或相關(guān)的值之間的比較。通常,由布爾操作符,例如布爾AND(與)與/或OR(或)操作符連接WHERE子句中的多個(gè)謂詞。
在另一個(gè)實(shí)施例中,查詢120為抽象查詢。使用由數(shù)據(jù)抽象模型所定義的邏輯字段來構(gòu)成抽象查詢。把每一個(gè)邏輯字段映射至數(shù)據(jù)源130中所使用的基礎(chǔ)數(shù)據(jù)表示(例如XML、SQL可其它類型的表示)的數(shù)據(jù)的一或多個(gè)物理實(shí)體。另外,在數(shù)據(jù)抽象模型中,獨(dú)立于基礎(chǔ)數(shù)據(jù)表示定義邏輯字段,從而允許形成松散耦合至基礎(chǔ)數(shù)據(jù)表示的查詢??梢詫Τ橄蟛樵兗右耘渲?,以存取數(shù)據(jù)132以及返回查詢結(jié)果,或修改(即,刪除或更新)數(shù)據(jù)132。為了針對數(shù)據(jù)132加以執(zhí)行,把抽象查詢轉(zhuǎn)換成與數(shù)據(jù)132的基礎(chǔ)數(shù)據(jù)表示相一致的形式(此處將其稱為具體查詢)。2002年2月26日提交的同一申請人的待審的標(biāo)題為“Application Protability And Extensibility Through DatabaseSchemaAnd QueryAbstraction(通過數(shù)據(jù)庫方案及查詢抽象的應(yīng)用便攜性和可擴(kuò)展性)”的美國專利申請10/083,075中詳細(xì)地描述了把抽象查詢轉(zhuǎn)換成具體查詢的過程,現(xiàn)將該申請全部內(nèi)容并入此處,以作參考。
在一個(gè)實(shí)施例中,查詢管理器140把查詢120作為查詢存儲(chǔ)庫150中的永久數(shù)據(jù)對象156“查詢(QUERY)N”加以存儲(chǔ)。僅說明性地把查詢存儲(chǔ)庫150描述為已包括多個(gè)查詢152“查詢1”和154“查詢2”(為了簡潔起見,僅描述了兩個(gè)),并且把它們作為永久數(shù)據(jù)對象加以存儲(chǔ)。但應(yīng)該加以注意的是,具有查詢152,154以及156的查詢存儲(chǔ)庫150,僅僅是說明性的,因此,不旨在對本發(fā)明加以限制。例如,可以由不同的發(fā)出請求的實(shí)體創(chuàng)建查詢152,154以及156,并且分別把它們存儲(chǔ)在相應(yīng)數(shù)據(jù)處理系統(tǒng)中的不同的位置。
在一個(gè)實(shí)施例中,根據(jù)存取權(quán)134,限制對查詢152,154以及156的存取。僅說明性地把存取權(quán)134描述為存儲(chǔ)在數(shù)據(jù)源130中。例如,存取權(quán)134可以針對多個(gè)發(fā)出請求的實(shí)體中的每一個(gè)發(fā)出請求的實(shí)體規(guī)定相應(yīng)的發(fā)出請求的實(shí)體是否被授權(quán)存取一或多個(gè)查詢152,154以及156中的某個(gè)或全部查詢。存取權(quán)134還可以針對一或多組發(fā)出請求的實(shí)體規(guī)定相應(yīng)的一或多個(gè)組是否被授權(quán)存取一或多個(gè)查詢152,154以及156中的某個(gè)或全部查詢。另外,存取權(quán)134也可以針對一或多個(gè)查詢152,154以及156中的不同部分與/或不同的發(fā)出請求的實(shí)體或發(fā)出請求的實(shí)體組規(guī)定不同類型的存取。更具體地講,根據(jù)附于給定查詢的存取權(quán),可以通過僅把給定查詢的受限制部分提交于相應(yīng)的發(fā)出請求的實(shí)體,來限制對給定查詢的存取。還可以根據(jù)附于給定查詢的存取權(quán),通過禁止相應(yīng)的發(fā)出請求的實(shí)體對給定查詢的至少一部分的修改,來限制對給定查詢的存取。
在一個(gè)實(shí)施例中,使用用戶接口190創(chuàng)建存取權(quán)134。根據(jù)一個(gè)方面,由被授權(quán)的發(fā)出請求的實(shí)體,諸如數(shù)據(jù)庫管理員,創(chuàng)建存取權(quán)134。另外,可以由創(chuàng)建了查詢152,154以及156中的給定的一個(gè)查詢的相應(yīng)的發(fā)出請求的實(shí)體在創(chuàng)建時(shí)創(chuàng)建查詢152,154以及156中給定的該查詢的存取權(quán)。以下,參照圖1B~C,更詳細(xì)地解釋用于限制對查詢152,154以及156的存取的查詢管理器140的操作。
圖1B描述了用于管理對查詢152,154以及156的存取的實(shí)施例中圖1A的軟件部件的關(guān)系圖。僅說明性地把多個(gè)發(fā)出請求的實(shí)體1101~110N描述為發(fā)布用于獲得與查詢152,154以及156相關(guān)的數(shù)據(jù)的數(shù)據(jù)請求160。例如,假設(shè)發(fā)出請求的實(shí)體1101~110N中的一個(gè)發(fā)出請求的實(shí)體(以下將其稱為“發(fā)出請求的實(shí)體110”)發(fā)布用于存取查詢152“查詢1”的數(shù)據(jù)請求160中的一個(gè)數(shù)據(jù)請求(以下將其稱為“數(shù)據(jù)請求160”)。查詢管理器140接收數(shù)據(jù)請求160,并且確定是否授權(quán)發(fā)出請求的實(shí)體110存取查詢152的全部或至少某些部分。為此,查詢管理器140存取數(shù)據(jù)源130中的存取權(quán)134。現(xiàn)在,假設(shè)存取權(quán)134授權(quán)發(fā)出請求的實(shí)體110僅存取查詢152的一或多個(gè)部分,而不是整個(gè)查詢152。因此,根據(jù)存取權(quán)134,查詢管理器140從查詢152中識(shí)別一或多個(gè)部分。然后,查詢管理器140把來自查詢152的一或多個(gè)部分作為受限的查詢172提交于發(fā)出請求的實(shí)體110??梢愿鶕?jù)存取權(quán)134,隨同指出對所提交的查詢進(jìn)行了限制的指示,把受限的查詢172提交于發(fā)出請求的實(shí)體110。
在一個(gè)實(shí)施例中,針對多個(gè)潛在的發(fā)出請求的實(shí)體,包括發(fā)出請求的實(shí)體1101~110N,定義存取權(quán)134。如以上所提到的,為了針對查詢152,154以及156規(guī)定允許發(fā)出請求的實(shí)體1101~110N中的哪一個(gè)發(fā)出請求的實(shí)體存取該查詢,可以實(shí)施存取權(quán)134。而且,還可以向存取權(quán)134提供用戶或應(yīng)用特定(application-specific)的粒度。例如,可以對存取權(quán)134進(jìn)行配置,以限制對整個(gè)查詢或查詢的成份,例如查詢條件,的存取。因此,可能出現(xiàn)不同的情況,其中根據(jù)存取權(quán)134針對不同的發(fā)出請求的實(shí)體確定對查詢152,154以及156之一的不同的存取權(quán)。換句話說,盡管所有這些發(fā)出請求的實(shí)體操作于同一查詢,即查詢152,但可以向這些發(fā)出請求的實(shí)體中的每一發(fā)出請求的實(shí)體提交不同的查詢數(shù)據(jù)。例如,可以把查詢152的第一部分提交于第一發(fā)出請求的實(shí)體,以及把查詢152的第二部分提交于第二發(fā)出請求的實(shí)體,從而第一部分包括未提交于第二部分的一或多個(gè)數(shù)據(jù)對象。
以下,參照表II~V描述示例性的情況,其中,僅說明性地描述,由用戶所代表的不同的發(fā)出請求的實(shí)體,試圖存取單個(gè)的預(yù)定義查詢。下面,參照表I描述示例性的預(yù)定義查詢。
表I示例性的預(yù)定義查詢001 SELECT*
002 FROM表-x003 WHERE(條件1AND條件2AND條件3)如從表I中所看到的,預(yù)定義了示例性查詢以針對數(shù)據(jù)庫表“表-x”執(zhí)行(行002)。具體地講,可以使用該示例性查詢以確定滿足具體查詢條件“條件1”與“條件2”與“條件3”(行003)的數(shù)據(jù)庫表“表-x”(行001)的所有行。
表II示例性情況1001 可以由約翰·史密斯修改的條件“條件1”002 僅可以讀條件“條件2”003 可以由組“研究人員”添加條件在表II的示例性情況1中,規(guī)定了表I的示例性查詢的存取權(quán)134,以致于僅用戶“約翰·史密斯”可以修改查詢條件“條件1”(行001)。換句話說,根據(jù)行001,用戶“約翰·史密斯”可以改變參數(shù),例如查詢條件“條件1”的操作符和值。根據(jù)行002,規(guī)定存取權(quán)134,以致于所有用戶僅可以讀取,但不可以修改查詢條件“條件2”。而且,把表I的完整的查詢與根據(jù)行003所規(guī)定的存取權(quán)相關(guān)聯(lián)。更具體地講,根據(jù)行003,規(guī)定存取權(quán)134,以致于只有組“研究人員”的用戶可以把一或多個(gè)查詢條件添加于表I的示例性查詢。當(dāng)沒有為情況1中的查詢條件“條件3”指定存取權(quán)時(shí),根據(jù)一個(gè)方面,當(dāng)希望時(shí),所有用戶都可以對該查詢條件進(jìn)行操作。
表III示例性情況2001 可以補(bǔ)充條件“條件1”002 隱藏條件“條件3”在表III的示例性情況2中,規(guī)定了針對表I的示例性查詢的存取權(quán)134,以致于任何用戶均可以補(bǔ)充查詢條件“條件1”(行001)。根據(jù)一個(gè)方面,如果可以補(bǔ)充查詢條件,則用戶可以不修改查詢條件的謂詞,而僅把一或多個(gè)附加的謂詞添加于查詢條件。例如,假設(shè)配置查詢條件“條件1”以標(biāo)識(shí)至少18歲的個(gè)人。因此,可以把查詢條件“條件1”定義如下“Age>=18”?,F(xiàn)在假設(shè)用戶希望確定至少18歲、但不老于25歲的個(gè)人。在該情況下,用戶可以通過添加相應(yīng)的補(bǔ)充查詢條件,例如“Age<=25”,補(bǔ)充查詢條件“條件1”。因此,所補(bǔ)充的條件將相應(yīng)于查詢條件“條件1”和補(bǔ)充查詢條件的組合,即“Age>=18 AND Age<=25”。根據(jù)行002,規(guī)定存取權(quán)134,以致于針對所有用戶隱藏了查詢條件“條件3”。因此,可以把表I中所定義的查詢提交給用戶,以致于不向該用戶顯示查詢條件“條件3”。然而,對于某些實(shí)施例來說,在該情況下,可以把某一指示向用戶加以顯示,以指出隱藏了表III中的查詢的一部分,該部分不加以顯示。另外,當(dāng)沒有為情況2中的查詢條件“條件2”指定存取權(quán)時(shí),根據(jù)一個(gè)方面,當(dāng)希望時(shí),所有用戶可以對該查詢條件進(jìn)行操作。
表IV示例性情況3001 使能靜態(tài)拷貝在表IV的示例性情況3中,規(guī)定了表I的示例性查詢的存取權(quán)134,以致于任何用戶均可以進(jìn)行示例性查詢的個(gè)人拷貝(行001)。然后,當(dāng)把個(gè)人拷貝定義成“靜態(tài)”(表IV的行001)時(shí),把該個(gè)人拷貝與除表I的示例性查詢之外的相同的存取權(quán)(即,存取權(quán)134)相關(guān)聯(lián)。
例如,圖1B的發(fā)出請求的實(shí)體110已對查詢152進(jìn)行了個(gè)人拷貝114,僅說明性地把個(gè)人拷貝114描述為存儲(chǔ)在與發(fā)出請求的實(shí)體110(如虛線箭頭116所表明的)相關(guān)聯(lián)的本地?cái)?shù)據(jù)源112中。當(dāng)根據(jù)存取權(quán)134限制對查詢152的存取時(shí),也通過存取權(quán)134限制對個(gè)人拷貝114的存取(如虛線箭頭136所表明的)。因此,當(dāng)發(fā)出請求的實(shí)體110存取查詢152的個(gè)人拷貝114時(shí),將把受限的查詢172有效地提交給用戶(如虛線箭頭174所表明的)。
表V示例性情況4001 使能動(dòng)態(tài)拷貝在表V的示例性情況4中,規(guī)定了表I的示例性查詢的存取權(quán)134,以致于任何用戶均可以進(jìn)行示例性查詢的動(dòng)態(tài)個(gè)人拷貝(行001)??梢愿鶕?jù)用戶的要求,修改動(dòng)態(tài)個(gè)人拷貝。換句話說,將不把存取權(quán)134與動(dòng)態(tài)個(gè)人拷貝相關(guān)聯(lián)。
現(xiàn)在,參照圖1C,圖1C描述了用于管理對查詢152,154以及156的存取的另一個(gè)實(shí)施例中圖1A的軟件部件的關(guān)系圖。僅說明性地把多個(gè)發(fā)出請求的實(shí)體1101~110N描述為發(fā)布針對多個(gè)查詢180的數(shù)據(jù)請求160,其中把查詢180作為永久數(shù)據(jù)對象存儲(chǔ)在查詢存儲(chǔ)庫150中。每一個(gè)查詢180包括查詢數(shù)據(jù)182和相關(guān)聯(lián)的存取權(quán)184。根據(jù)一個(gè)方面,查詢數(shù)據(jù)182相應(yīng)于預(yù)定義查詢(例如,圖1A的查詢152~156之一)的數(shù)據(jù)。
例如,現(xiàn)在假設(shè),查詢管理器140接收數(shù)據(jù)請求160(以下將其稱為“數(shù)據(jù)請求160”)中給定的數(shù)據(jù)請求,其中數(shù)據(jù)請求160來自希望對查詢180中的給定的查詢180(以下將其稱為“查詢180”)進(jìn)行存取的用戶。以下參照圖4描述查詢180的示例性實(shí)施例。
當(dāng)接收到數(shù)據(jù)請求160時(shí),查詢管理器140確定是否授權(quán)該用戶存取查詢180的全部或至少某些查詢數(shù)據(jù)182。為此,查詢管理器140確定來自用戶的屬性。所確定的一或多個(gè)屬性適合于對用戶進(jìn)行標(biāo)識(shí)。例如,所確定的一或多個(gè)屬性可以為用戶名、用戶的標(biāo)識(shí)符、用戶的角色或者與用戶相關(guān)的授權(quán)級別。查詢管理器140還確定針對查詢數(shù)據(jù)182的用戶的存取權(quán)。根據(jù)存取權(quán)184確定用戶的存取權(quán)。
在一個(gè)實(shí)施例中,根據(jù)圖1A的存取權(quán)134創(chuàng)建存取權(quán)184。因此,存取權(quán)184可適合于查詢數(shù)據(jù)182的多個(gè)潛在的用戶。換句話說,對于某些或全部查詢數(shù)據(jù)182,存取權(quán)184可適合于每個(gè)潛在的用戶?;蛘?,存取權(quán)184也可以定義至存取權(quán)134的鏈路。在該情況下,把存取權(quán)134用于確定是否授權(quán)一或多個(gè)潛在的用戶存取某些或全部查詢數(shù)據(jù)182。或者,可以在創(chuàng)建查詢數(shù)據(jù)182時(shí),創(chuàng)建存取權(quán)184,并且將存取權(quán)184隨查詢數(shù)據(jù)182一起加以存儲(chǔ),作為永久數(shù)據(jù)對象180。
具體地講,在圖1C中所說明的例子中,查詢管理器140根據(jù)隨查詢數(shù)據(jù)182一起存儲(chǔ)的存取權(quán)184,確定是否授權(quán)發(fā)出請求的實(shí)體110存取查詢數(shù)據(jù)182。更具體地講,查詢管理器140使用存取權(quán)184標(biāo)識(shí)允許用戶存取的查詢數(shù)據(jù)182的部分。然后,查詢管理器140把所標(biāo)識(shí)的部分作為受限的查詢176提交于用戶。以下參照圖2更詳細(xì)地描述查詢管理器140的操作。
現(xiàn)在,參照圖2,圖2描述了一種用于管理由多個(gè)用戶對預(yù)定義查詢(例如,圖1A的查詢152,154以及156之一)進(jìn)行的存取的方法200的一個(gè)實(shí)施例。可以使用查詢管理器(例如,圖1A的查詢管理器140)和用戶接口(例如,圖1A的用戶接口190),實(shí)現(xiàn)方法200的至少部分步驟。方法200開始于步驟210。
在步驟220,從第一發(fā)出請求的實(shí)體(例如,圖1A的發(fā)出請求的實(shí)體110)接收針對數(shù)據(jù)源(例如,圖1A的數(shù)據(jù)源130)的查詢(例如,圖1A的查詢120)。在步驟230,創(chuàng)建針對該查詢的存取權(quán)。根據(jù)一個(gè)方面,第一發(fā)出請求的實(shí)體使用用戶接口創(chuàng)建存取權(quán)。對存取權(quán)進(jìn)行配置,以限制對該查詢的存取。在一個(gè)實(shí)施例中,創(chuàng)建存取權(quán)包括把存取權(quán)(例如,圖1A的存取權(quán)134)存儲(chǔ)在數(shù)據(jù)源中。因此,當(dāng)接收到用于存取查詢的請求時(shí),查詢管理器可以在運(yùn)行時(shí)間把查詢與存取權(quán)(例如,圖1B的存取權(quán)134)加以鏈接。在另一個(gè)實(shí)施例中,創(chuàng)建存取權(quán)包括準(zhǔn)備存取權(quán)(例如,圖1C的存取權(quán)184),以隨永久數(shù)據(jù)對象(例如,圖1C的查詢180)中的查詢一起加以存儲(chǔ)。或者,永久數(shù)據(jù)對象中的存取權(quán)可以定義至存儲(chǔ)在數(shù)據(jù)源中的存取權(quán)的鏈路。
在步驟240,把存取權(quán)與查詢相關(guān)聯(lián)。在一個(gè)實(shí)施例中,在步驟250,把存取權(quán)作為永久數(shù)據(jù)對象(例如,圖1C的查詢180)隨查詢一起加以存儲(chǔ)?;蛘?,當(dāng)把存取權(quán)存儲(chǔ)在數(shù)據(jù)源中時(shí),可以僅存儲(chǔ)查詢,作為永久數(shù)據(jù)對象(例如,圖1B的查詢152)。
應(yīng)該加以注意的是,多個(gè)發(fā)出請求的實(shí)體可以根據(jù)相關(guān)聯(lián)的存取權(quán)隨后存取已在步驟250存儲(chǔ)的永久數(shù)據(jù)對象。僅說明性地把描述為,在步驟260,從第二發(fā)出請求的實(shí)體(例如,圖1B~C的發(fā)出請求的實(shí)體110)接收數(shù)據(jù)請求(例如,圖1B~C的數(shù)據(jù)請求160),以存取已在步驟250作為永久數(shù)據(jù)對象加以存儲(chǔ)的查詢。
在步驟270,根據(jù)存取權(quán),準(zhǔn)予或拒絕存取永久數(shù)據(jù)對象的至少一或多個(gè)部分。以下參照圖3描述準(zhǔn)予存取永久數(shù)據(jù)對象的示例性方法。然后,方法200在步驟280退出。
現(xiàn)在,參照圖3,圖3描述了根據(jù)圖2的步驟270準(zhǔn)予存取永久數(shù)據(jù)對象(例如,圖1B的查詢152或圖1C的查詢180)的示例性方法300??梢允褂貌樵児芾砥?例如,圖1B~C的查詢管理器140)執(zhí)行方法300的至少部分步驟。方法300開始于步驟310,在步驟310,該方法確定永久數(shù)據(jù)對象是否包括存取權(quán)(例如,圖1C的存取權(quán)184)。
如果存取權(quán)包含在永久數(shù)據(jù)對象(例如,圖1C的查詢180)中,則在步驟320,確定發(fā)出請求的實(shí)體的一或多個(gè)屬性。然后,在步驟330,根據(jù)包含在永久數(shù)據(jù)對象中的存取權(quán)以及確定的一或多個(gè)屬性針對發(fā)出請求的實(shí)體標(biāo)識(shí)對永久數(shù)據(jù)對象的實(shí)體特定的存取權(quán)。換句話說,分析包含在永久數(shù)據(jù)對象中的存取權(quán),以判別是否可以從中獲得專門針對發(fā)出請求的實(shí)體的存取權(quán)。例如,可以分析包含在永久數(shù)據(jù)對象中的存取權(quán),以標(biāo)識(shí)其中特別授權(quán)存取具有所確定的一或多個(gè)屬性的發(fā)出請求的實(shí)體的一些部分。另外,還可以分析包含在永久數(shù)據(jù)對象中的存取權(quán),以標(biāo)識(shí)其中非特別排除具有所確定的一或多個(gè)屬性的發(fā)出請求的實(shí)體的存取的一些部分。然而,應(yīng)該加以注意的是,可以按各種不同的方式實(shí)現(xiàn)存取權(quán)。如以上所提到的,可以把存取權(quán)與特定的用戶與/或用戶組相關(guān)聯(lián)。然而,也可以針對永久數(shù)據(jù)對象的部分查詢數(shù)據(jù),例如查詢條件,而不參照任何特定的用戶或用戶組,來規(guī)定存取權(quán)。因此,本發(fā)明不局限于存取權(quán)的具體的實(shí)現(xiàn),而是考慮到向其它實(shí)現(xiàn)的擴(kuò)展,包括向當(dāng)前未知的一些實(shí)現(xiàn)的擴(kuò)展。
在步驟340,根據(jù)所標(biāo)識(shí)的實(shí)體特定的存取權(quán),把永久數(shù)據(jù)對象的零、一或多個(gè)部分、或者整個(gè)永久數(shù)據(jù)對象作為受限的查詢(例如,圖1C的受限的查詢176),提交于發(fā)出請求的實(shí)體。然后,處理在圖2的步驟280繼續(xù)。
然而,如果在步驟310確定存取權(quán)不包含在永久數(shù)據(jù)對象(例如,圖1B的查詢152)中,則在步驟350,根據(jù)存儲(chǔ)在相應(yīng)的數(shù)據(jù)源中的存取權(quán)(例如,圖1B的存取權(quán)134),確定針對發(fā)出請求的實(shí)體的相應(yīng)的實(shí)體特定的存取權(quán)。然后,處理在步驟340繼續(xù)。
現(xiàn)在,參照圖4,圖4描述了包括示例性永久數(shù)據(jù)對象(例如,圖1C的永久數(shù)據(jù)對象180)的數(shù)據(jù)結(jié)構(gòu)400的一個(gè)實(shí)施例。例如,按具有多個(gè)列410~440和行450~480的表格的形式描述數(shù)據(jù)結(jié)構(gòu)400。
行450展示列410~440的標(biāo)題。然而,應(yīng)該認(rèn)識(shí)到,僅說明性地展示了行450,因此,行450是可選的。如從行450可看出的,列410~420包括查詢數(shù)據(jù)(例如,圖1C的查詢數(shù)據(jù)182)。列430~440包括存取權(quán)(例如,圖1C的存取權(quán)184)的說明。更具體地講,僅說明性地把列410描述為包括預(yù)定義查詢的標(biāo)識(shí)。僅說明性地把列420描述為包括查詢條件。僅說明性地把列430描述為包括與不同查詢條件相關(guān)聯(lián)的存取權(quán)。僅說明性地把列440描述為包括對其施加了包含在列430中的存取權(quán)的用戶/用戶組的指示。
例如,把行460~464與第一查詢“查詢1”相關(guān)聯(lián),其中,第一查詢“查詢1”具有3個(gè)查詢條件,即“條件1”、“條件2”以及“條件3”。在行460~464中,規(guī)定了針對這3個(gè)查詢條件的存取權(quán)。更具體地講,根據(jù)行460,針對查詢條件“條件1”所規(guī)定的存取權(quán)為“只讀”型(列430)。該存取權(quán)施加于所有用戶,因?yàn)闆]有針對列440中的“條件1”規(guī)定具體的用戶或用戶組。換句話說,允許所有用戶只讀地存取查詢條件“條件1”。
根據(jù)行462,針對查詢條件“條件2”所規(guī)定的存取權(quán)為“修改”型(列430)。該存取權(quán)施加于用戶組“研究人員”(列440)的所有用戶。換句話說,允許用戶組“研究人員”的所有用戶修改查詢條件“條件2”。根據(jù)一個(gè)方面,當(dāng)所規(guī)定的存取權(quán)為“修改”時(shí),并且當(dāng)未針對其他用戶或用戶組規(guī)定對“條件2”的存取權(quán)時(shí),可以通過默認(rèn),把查詢條件“條件2”對其他用戶/用戶組隱藏,或允許只讀地存取。為此,在一個(gè)實(shí)施列中,可以定義用戶特定的或應(yīng)用特定的默認(rèn)存取權(quán)。
根據(jù)行464,針對查詢條件“條件3”所規(guī)定的存取權(quán)為“只讀”型(列430)。該存取權(quán)施加于兩個(gè)用戶,第一用戶“管理員”,例如,數(shù)據(jù)庫管理員,以及第二用戶“約翰·史密斯”(列440)。換句話說,僅允許“管理員”和“約翰·史密斯”讀取查詢條件“條件3”。例如,假設(shè)公司X的“約翰·史密斯”已創(chuàng)建了“查詢1”。“查詢1”允許存取“約翰·史密斯”的本地?cái)?shù)據(jù),例如與“約翰·史密斯”所詳細(xì)闡述的研究項(xiàng)目相關(guān)的數(shù)據(jù)。
根據(jù)“查詢1”,“約翰·史密斯”允許該公司中所有用戶存取本地?cái)?shù)據(jù),但不允許使用查詢條件“條件3”存取敏感數(shù)據(jù)。為了避免被其自己無意識(shí)地修改查詢條件“條件3”,“約翰·史密斯”已把其存取權(quán)設(shè)置為“只讀”。還假設(shè),根據(jù)公司X的內(nèi)部規(guī)程,必須允許數(shù)據(jù)庫管理員存取公司X中任何預(yù)定義查詢的所有部分。例如,數(shù)據(jù)庫管理員必須能夠驗(yàn)證給定的查詢條件是否不是非必須地限制數(shù)據(jù)的存取。因此,在該給定的例子中,允許數(shù)據(jù)庫管理員讀取,但不能修改查詢條件“條件3”。另外,當(dāng)所規(guī)定的存取權(quán)為針對兩個(gè)特定用戶,即針對“管理員”和“約翰·史密斯”的“只讀”,且當(dāng)未針對其他用戶或用戶組規(guī)定對“條件3”的存取權(quán)時(shí),可以通過默認(rèn),把查詢條件“條件3”對所有其他用戶/用戶組隱藏。
把行470與第二查詢“查詢2”相關(guān)聯(lián)。然而,在列420中,沒有針對第二查詢“查詢2”指示具體的查詢條件。因此,列430中針對第二查詢“查詢2”所規(guī)定的存取權(quán)施加于該查詢的所有成份。更具體地講,根據(jù)列430,針對查詢“查詢2”所規(guī)定的存取權(quán)為“添加條件”。由于在列440中沒有針對“查詢2”規(guī)定特定的用戶或用戶組,所以該存取權(quán)施加于所有用戶。換句話說,任何用戶可以把一或多個(gè)查詢條件添加于第二查詢“查詢2”。
把行480與第三查詢“查詢N”相關(guān)聯(lián)。然而,在列420中,沒有針對第三查詢“查詢N”指示具體的查詢條件。而且,在列430中沒有規(guī)定針對第三查詢“查詢N”的存取權(quán)。因此,當(dāng)希望時(shí),任何用戶都可以對第三查詢“查詢N”進(jìn)行操作。
應(yīng)該加以注意的是,已通過舉例的形式,參照圖4,描述了不同類型的存取,即“只讀”、“修改”以及“添加條件”。然而,也可以提供其它類型的存取,例如,允許補(bǔ)充給定預(yù)定義查詢的一或多個(gè)查詢條件的存取(例如,表III的情況2)。而且,其它類型的存取還可允許對預(yù)定義查詢進(jìn)行靜態(tài)或動(dòng)態(tài)的拷貝(例如,分別為表IV和V的情況3和4)。因此,此處所描述的所有類型的存取和存取權(quán),僅為說明性的,而不是對本發(fā)明的限制。相反,廣泛地考慮了適合于提供查詢與/或基于查詢條件的安全的任何存取類型。
盡管以上的描述針對的是本發(fā)明的實(shí)施例,然而,在不背離本發(fā)明的基本范圍的情況下,可以設(shè)計(jì)本發(fā)明的其它和進(jìn)一步的實(shí)施例,本發(fā)明的范圍由權(quán)利要求加以確定。
對相關(guān)申請的交叉參照本申請涉及2002年2月26日提交的同一申請人的待審的標(biāo)題為“Application Portability And Extensibility Through Database Schema And QueryAbstraction(通過數(shù)據(jù)庫方案及查詢抽象的應(yīng)用便攜性和可擴(kuò)展性)”的美國專利申請10/083,075,現(xiàn)將其全部內(nèi)容并入此處,以作參考。
權(quán)利要求
1.一種管理由多個(gè)用戶存取對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行的預(yù)定義查詢的方法,包括把一或多個(gè)存取權(quán)與所述預(yù)定義查詢的至少某部分相關(guān)聯(lián);接收第一用戶存取所述預(yù)定義查詢的請求;以及根據(jù)存取權(quán),限制所述第一用戶對所述預(yù)定義查詢的存取。
2.根據(jù)權(quán)利要求1所述的方法,其中,使用由抽象描述數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)抽象模型所定義的邏輯字段,來構(gòu)成預(yù)定義查詢。
3.根據(jù)權(quán)利要求2所述的方法,其中,把每個(gè)邏輯字段映射至數(shù)據(jù)庫中所使用的基礎(chǔ)數(shù)據(jù)表示的數(shù)據(jù)的一或多個(gè)物理實(shí)體。
4.根據(jù)權(quán)利要求1所述的方法,還包括確定第一用戶的一或多個(gè)屬性;以及根據(jù)第一用戶的存取權(quán)和一或多個(gè)屬性,限制第一用戶對預(yù)定義查詢的存取。
5.根據(jù)權(quán)利要求4所述的方法,其中,根據(jù)第一用戶的存取權(quán)和一或多個(gè)屬性來限制第一用戶對預(yù)定義查詢的存取,包括使用一或多個(gè)所確定的屬性,根據(jù)存取權(quán),標(biāo)識(shí)針對第一用戶的用戶特定的存取權(quán);以及其中,根據(jù)用戶特定的存取權(quán),準(zhǔn)予第一用戶存取預(yù)定義查詢的某部分或全部。
6.根據(jù)權(quán)利要求4所述的方法,其中,一或多個(gè)屬性為下列中的至少之(i)用戶名;(ii)用戶角色;以及(iii)用戶授權(quán)級別。
7.根據(jù)權(quán)利要求1所述的方法,其中,一種類型的存取權(quán)允許第一用戶讀取,但不能修改預(yù)定義查詢的第一部分。
8.根據(jù)權(quán)利要求7所述的方法,其中,一種類型的存取權(quán)防止第二用戶讀取預(yù)定義查詢的第一部分。
9.根據(jù)權(quán)利要求7所述的方法,其中,一種類型的存取權(quán)允許第二用戶讀取和修改預(yù)定義查詢的第一部分。
10.根據(jù)權(quán)利要求1所述的方法,其中,一種類型的存取權(quán)防止第一用戶讀取預(yù)定義查詢的某部分。
11.根據(jù)權(quán)利要求1所述的方法,其中,一種類型的存取權(quán)允許第一用戶把查詢條件附于所述查詢的某部分,但不能修改所述部分。
12.根據(jù)權(quán)利要求1所述的方法,其中,根據(jù)第一用戶的存取權(quán)和一或多個(gè)屬性限制第一用戶對預(yù)定義查詢的存取,此過程包括允許所述用戶對預(yù)定義查詢進(jìn)行個(gè)人拷貝。
13.根據(jù)權(quán)利要求12所述的方法,其中,根據(jù)第一用戶的存取權(quán)和一或多個(gè)屬性限制第一用戶對預(yù)定義查詢的存取,此過程包括允許所述用戶修改個(gè)人拷貝的某受限部分。
14.根據(jù)權(quán)利要求12所述的方法,其中,還把與預(yù)定義查詢相關(guān)聯(lián)的存取權(quán)與個(gè)人拷貝相關(guān)聯(lián)。
15.一種管理由多個(gè)發(fā)出請求的實(shí)體存取對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行的預(yù)定義查詢的方法,包括創(chuàng)建存取權(quán),所述存取權(quán)被配置以限制對所述預(yù)定義查詢的存取;把存取權(quán)與所述預(yù)定義查詢相關(guān)聯(lián);以及根據(jù)存取權(quán),準(zhǔn)予發(fā)出請求的實(shí)體對預(yù)定義查詢的某部分或全部進(jìn)行存取。
16.根據(jù)權(quán)利要求15所述的方法,其中,根據(jù)存取權(quán),準(zhǔn)予發(fā)出請求的實(shí)體對預(yù)定義查詢的某部分或全部進(jìn)行存取,包括允許發(fā)出請求的實(shí)體拷貝預(yù)定義查詢;以及把存取權(quán)與所拷貝的預(yù)定義查詢相關(guān)聯(lián)。
17.根據(jù)權(quán)利要求16所述的方法,還包括允許發(fā)出請求的實(shí)體修改與所拷貝的預(yù)定義查詢相關(guān)聯(lián)的存取權(quán)。
18.根據(jù)權(quán)利要求15所述的方法,其中,根據(jù)存取權(quán),準(zhǔn)予發(fā)出請求的實(shí)體對預(yù)定義查詢的某部分或全部進(jìn)行存取,包括允許發(fā)出請求的實(shí)體把一或多個(gè)查詢條件添加至預(yù)定義查詢。
19.根據(jù)權(quán)利要求15所述的方法,還包括從具體的發(fā)出請求的實(shí)體接收存取預(yù)定義查詢的請求;根據(jù)存取權(quán),把預(yù)定義查詢提交于所述具體的發(fā)出請求的實(shí)體;以及向所述具體的發(fā)出請求的實(shí)體顯示所述具體的發(fā)出請求的實(shí)體的存取權(quán)的指示。
20.根據(jù)權(quán)利要求15所述的方法,還包括從具體的發(fā)出請求的實(shí)體接收存取預(yù)定義查詢的請求;以及根據(jù)存取權(quán),把預(yù)定義查詢提交于所述具體的發(fā)出請求的實(shí)體,其中,預(yù)定義查詢的至少一個(gè)查詢條件未出現(xiàn)在所述預(yù)定義查詢中。
21.根據(jù)權(quán)利要求15所述的方法,其中所述預(yù)定義查詢至少包括一個(gè)查詢條件;以及根據(jù)存取權(quán),準(zhǔn)予發(fā)出請求的實(shí)體存取預(yù)定義查詢的某部分或全部,此過程包括下列的至少之一(i)允許所述發(fā)出請求的實(shí)體讀取,但不能修改至少一個(gè)查詢條件;以及(ii)允許所述發(fā)出請求的實(shí)體修改至少一個(gè)查詢條件。
22.根據(jù)權(quán)利要求15所述的方法,其中,把存取權(quán)與預(yù)定義查詢相關(guān)聯(lián),包括把預(yù)定義查詢和存取權(quán)作為永久數(shù)據(jù)對象加以存儲(chǔ)。
23.一種計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī)可讀媒體包括程序,當(dāng)處理器執(zhí)行所述程序時(shí),所述程序執(zhí)行管理由多個(gè)用戶存取對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行的預(yù)定義查詢的處理,所述處理包括把一或多個(gè)存取權(quán)與所述預(yù)定義查詢的至少某部分相關(guān)聯(lián);接收第一用戶存取所述預(yù)定義查詢的請求;以及根據(jù)存取權(quán),限制所述第一用戶對所述預(yù)定義查詢的存取。
24.根據(jù)權(quán)利要求23所述的計(jì)算機(jī)可讀媒體,其中,使用由抽象描述數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)抽象模型所定義的邏輯字段,來構(gòu)成預(yù)定義查詢。
25.根據(jù)權(quán)利要求24所述的計(jì)算機(jī)可讀媒體,其中,把每個(gè)邏輯字段映射至數(shù)據(jù)庫中所使用的基礎(chǔ)數(shù)據(jù)表示的數(shù)據(jù)的一或多個(gè)物理實(shí)體。
26.根據(jù)權(quán)利要求23所述的計(jì)算機(jī)可讀媒體,還包括確定第一用戶的一或多個(gè)屬性;以及根據(jù)第一用戶的存取權(quán)和一或多個(gè)屬性,限制第一用戶對預(yù)定義查詢的存取。
27.根據(jù)權(quán)利要求26所述的計(jì)算機(jī)可讀媒體,其中,根據(jù)第一用戶的存取權(quán)和一或多個(gè)屬性來限制第一用戶對預(yù)定義查詢的存取,包括使用一或多個(gè)所確定的屬性,根據(jù)存取權(quán),標(biāo)識(shí)關(guān)于第一用戶的用戶特定的存取權(quán);以及其中,根據(jù)用戶特定的存取權(quán),準(zhǔn)予第一用戶存取預(yù)定義查詢的某部分或全部。
28.根據(jù)權(quán)利要求26所述的計(jì)算機(jī)可讀媒體,其中,一或多個(gè)屬性為下列的至少之一(i)用戶名;(ii)用戶角色;以及(iii)用戶授權(quán)級別。
29.根據(jù)權(quán)利要求23所述的計(jì)算機(jī)可讀媒體,其中,一種類型的存取權(quán)允許第一用戶讀取,但不能修改預(yù)定義查詢的第一部分。
30.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)可讀媒體,其中,一種類型的存取權(quán)防止第二用戶讀取預(yù)定義查詢的第一部分。
31.根據(jù)權(quán)利要求29所述的計(jì)算機(jī)可讀媒體,其中,一種類型的存取權(quán)允許第二用戶讀取和修改預(yù)定義查詢的第一部分。
32.根據(jù)權(quán)利要求23所述的計(jì)算機(jī)可讀媒體,其中,一種類型的存取權(quán)防止第一用戶讀取預(yù)定義查詢的某部分。
33.根據(jù)權(quán)利要求23所述的計(jì)算機(jī)可讀媒體,其中,一種類型的存取權(quán)允許第一用戶把查詢條件附于所述查詢的某部分,但不能修改所述部分。
34.根據(jù)權(quán)利要求23所述的計(jì)算機(jī)可讀媒體,其中,根據(jù)第一用戶的存取權(quán)和一或多個(gè)屬性來限制第一用戶對預(yù)定義查詢的存取,此過程包括允許所述用戶對預(yù)定義查詢進(jìn)行個(gè)人拷貝。
35.根據(jù)權(quán)利要求34所述的計(jì)算機(jī)可讀媒體,其中,根據(jù)第一用戶的存取權(quán)和一或多個(gè)屬性來限制第一用戶對預(yù)定義查詢的存取,此過程包括允許所述用戶修改個(gè)人拷貝的某受限部分。
36.根據(jù)權(quán)利要求34所述的計(jì)算機(jī)可讀媒體,其中,還把與預(yù)定義查詢相關(guān)聯(lián)的存取權(quán)與個(gè)人拷貝相關(guān)聯(lián)。
37.一種系統(tǒng),包括預(yù)定義查詢;一或多個(gè)存取權(quán),與所述預(yù)定義查詢的至少某部分相關(guān)聯(lián);以及查詢管理器,被配置,從而接收第一用戶存取所述預(yù)定義查詢的請求;以及根據(jù)存取權(quán),限制所述第一用戶對所述預(yù)定義查詢的存取。
全文摘要
一種用于管理存取查詢的方法、系統(tǒng)以及制造物件,更具體地講,一種用于管理由多個(gè)用戶對永久性存儲(chǔ)的查詢進(jìn)行的存取的方法、系統(tǒng)以及制造物件。一個(gè)實(shí)施例提供了一種管理由多個(gè)用戶存取對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行的預(yù)定義查詢的方法。該方法包括把一或多個(gè)存取權(quán)與該預(yù)定義查詢的至少某部分相關(guān)聯(lián)。當(dāng)接收到第一用戶存取該預(yù)定義查詢的請求時(shí),根據(jù)存取權(quán),限制該第一用戶對該預(yù)定義查詢的存取。
文檔編號G06F17/30GK1725219SQ200510087418
公開日2006年1月25日 申請日期2005年7月22日 優(yōu)先權(quán)日2004年7月22日
發(fā)明者理查德·D·德廷杰, 丹尼爾·P·科爾茲 申請人:國際商業(yè)機(jī)器公司