專利名稱:Crm數(shù)據(jù)庫(kù)的安全視圖的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及提供對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)中的數(shù)據(jù)庫(kù)表的安全訪問的方法。
背景技術(shù):
在數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)中,數(shù)據(jù)存儲(chǔ)在一個(gè)或多個(gè)數(shù)據(jù)容器中。每個(gè)容器都包含記錄且每個(gè)記錄內(nèi)的數(shù)據(jù)被組織成一個(gè)或多個(gè)字段。在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)容器被稱作表,記錄被稱作行,且字段被稱作列。在面向?qū)ο蟮臄?shù)據(jù)庫(kù)中,數(shù)據(jù)容器被稱作對(duì)象類,記錄被稱作對(duì)象,且字段被稱作屬性。其它數(shù)據(jù)庫(kù)架構(gòu)可使用不同的術(shù)語(yǔ)。本申請(qǐng)的要求不限于任何特殊類型的數(shù)據(jù)容器或數(shù)據(jù)庫(kù)架構(gòu)。
具有廣泛數(shù)據(jù)處理要求的許多應(yīng)用常依靠獨(dú)立的DBMS幫助管理應(yīng)用數(shù)據(jù)。這種應(yīng)用可包括業(yè)務(wù)應(yīng)用,包含客戶關(guān)系管理(CRM)系統(tǒng)和企業(yè)資源計(jì)劃(ERP)系統(tǒng)。使用分開的獨(dú)立DBMS允許應(yīng)用的設(shè)計(jì)者依靠DBMS來處理復(fù)雜的批量數(shù)據(jù)存儲(chǔ)功能,同時(shí)使設(shè)計(jì)者得到解放并可以聚焦于創(chuàng)建應(yīng)用特定功能。除了勞動(dòng)分工的好處,這種雙系統(tǒng)模型提供了簡(jiǎn)單和普遍使用的安全框架,其中將安全功能局限于應(yīng)用系統(tǒng)。例如,包括使用DBMS的CRM系統(tǒng)的許多專有業(yè)務(wù)應(yīng)用僅通過CRM系統(tǒng)提供對(duì)CRM數(shù)據(jù)的訪問,從而確保通過CRM應(yīng)用提供的安全功能來管理數(shù)據(jù)訪問和數(shù)據(jù)安全。在該模型中,出于維護(hù)的目的,CRM系統(tǒng)普遍實(shí)現(xiàn)僅能通過CRM應(yīng)用訪問或者由系統(tǒng)管理員訪問的封閉的私有數(shù)據(jù)庫(kù)實(shí)例。
圖2示出了現(xiàn)有系統(tǒng)中使用的安全模型。在該安全模型中,設(shè)置DBMS,以拒絕對(duì)應(yīng)用數(shù)據(jù)庫(kù)的一般訪問,僅允許軟件系統(tǒng)本身或者可能是系統(tǒng)管理員訪問數(shù)據(jù)庫(kù)。按此方式,對(duì)應(yīng)用系統(tǒng)數(shù)據(jù)的所有訪問都由應(yīng)用控制。
安全性被導(dǎo)離DBMS并局限于業(yè)務(wù)應(yīng)用內(nèi)的一個(gè)原因在于典型DBMS的安全功能常不適于處理應(yīng)用特定的安全要求。例如,作為一DBMS的Microsoft SQLServer僅對(duì)表級(jí)別提供數(shù)據(jù)保護(hù)。諸如Microsoft CRM的許多業(yè)務(wù)應(yīng)用會(huì)要求特殊的行級(jí)別保護(hù)。在行級(jí)別安全中,基于用戶的角色和特權(quán),結(jié)果集與隱藏的或阻止的數(shù)據(jù)行一起返回。諸如Microsoft CRM的CRM系統(tǒng)一般通過使用一般可執(zhí)行軟件或者通過應(yīng)用編程接口(API)編程的應(yīng)用軟件執(zhí)行該行級(jí)別安全。
許多獨(dú)立軟件供應(yīng)商不希望使用DBMS級(jí)別安全的另一個(gè)理由在于這會(huì)要求供應(yīng)商特定的設(shè)計(jì)考慮和對(duì)特殊DBMS的支持。這會(huì)使得軟件的交叉兼容更難于實(shí)現(xiàn)。在數(shù)據(jù)庫(kù)安全被轉(zhuǎn)入應(yīng)用軟件本身的系統(tǒng)中,可以減少對(duì)于隨應(yīng)用使用的特定DBMS的考慮。
雖然該普通安全系統(tǒng)便于CRM系統(tǒng)設(shè)計(jì)者實(shí)現(xiàn)本地化安全,但常希望或需要對(duì)應(yīng)用數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)進(jìn)行應(yīng)用本身不適合于或不被設(shè)計(jì)成執(zhí)行的分析。在諸如Microsoft CRM的CRM系統(tǒng)的示例中,會(huì)期望分析客戶數(shù)據(jù)的趨勢(shì)、營(yíng)銷模式、需求統(tǒng)計(jì)、預(yù)算考慮、操作考慮等,這是CRM系統(tǒng)未被設(shè)計(jì)執(zhí)行的。此外,沒有方便的方法可以與諸如企業(yè)資源計(jì)劃(ERP)應(yīng)用的其它有關(guān)業(yè)務(wù)應(yīng)用共享Microsoft CRM數(shù)據(jù)。
在現(xiàn)有的安全模型下,提供對(duì)CRM數(shù)據(jù)的訪問的一個(gè)選項(xiàng)是設(shè)計(jì)對(duì)CRM系統(tǒng)的接口,以便通過CRM系統(tǒng)提取必要的數(shù)據(jù)。這可通過向用戶提供API以經(jīng)由CRM系統(tǒng)檢索數(shù)據(jù)來進(jìn)行。但根據(jù)CRM系統(tǒng),該過程會(huì)是極其費(fèi)時(shí)和復(fù)雜的,因?yàn)樾枰脩粼诰帉懘a以通過應(yīng)用接口進(jìn)行通信方面非常熟練。該方法不是許多數(shù)據(jù)分析員適合于執(zhí)行的過程。
包括微軟office產(chǎn)品套裝(例如,Microsoft Word,Microsoft Excel,MicrosoftPowerPoint等)的許多應(yīng)用程序能訪問支持SQL和ODBC的任何DBMS。因此,提供對(duì)Microsoft CRM數(shù)據(jù)庫(kù)的訪問的另一個(gè)更方便的選項(xiàng)是打開用于經(jīng)由DBMS訪問用戶組的數(shù)據(jù)庫(kù)。但如上所述,DBMS通常僅允許下至表級(jí)別的保護(hù),且不允許表中行特定信息的微級(jí)別保護(hù)。特定的公司可能不希望數(shù)據(jù)分析員看到所有的行數(shù)據(jù)而僅僅是行的一子集。如果要實(shí)現(xiàn)該選項(xiàng),則需要在改變雇員業(yè)務(wù)角色和創(chuàng)建新業(yè)務(wù)角色方面進(jìn)行附加的業(yè)務(wù)過程改變,這是許多獨(dú)立軟件供應(yīng)商(ISV)不希望客戶負(fù)擔(dān)的。此外,允許開放的數(shù)據(jù)庫(kù)連接將增加會(huì)大大損害業(yè)務(wù)的應(yīng)用數(shù)據(jù)破壞的危險(xiǎn)。雖然將數(shù)據(jù)庫(kù)對(duì)系統(tǒng)管理員開放是合理的,但開放數(shù)據(jù)庫(kù)用于數(shù)據(jù)分析員組的完全訪問會(huì)造成會(huì)使諸如CRM數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)易受危害的安全問題。
因此,需要一種改良的方法和系統(tǒng),用于經(jīng)由DBMS訪問安全應(yīng)用數(shù)據(jù)庫(kù)中的數(shù)據(jù)而不危害安全應(yīng)用的安全目標(biāo)。
發(fā)明內(nèi)容
本申請(qǐng)的權(quán)利要求敘述了一種方法和系統(tǒng),用于使用實(shí)現(xiàn)安全協(xié)議的視圖定義訪問按其它方式不可訪問的DBMS的應(yīng)用數(shù)據(jù)庫(kù)中的信息。雖然特定方法和系統(tǒng)被描述成應(yīng)用于CRM系統(tǒng)實(shí)施例,特別是Microsoft CRM,但應(yīng)強(qiáng)調(diào)本系統(tǒng)也可應(yīng)用于其它安全應(yīng)用數(shù)據(jù)庫(kù)。
所要求的方法和系統(tǒng)可以是其中DBMS被設(shè)定為允許對(duì)CRM數(shù)據(jù)庫(kù)的離散訪問的分層安全訪問模型。用戶可例如用集成的DBMS-操作系統(tǒng)驗(yàn)證協(xié)議登錄到DBMS并獲得對(duì)應(yīng)用數(shù)據(jù)庫(kù)實(shí)例的訪問。但,對(duì)數(shù)據(jù)庫(kù)中包含的對(duì)象的進(jìn)一步訪問被限制于數(shù)據(jù)庫(kù)視圖。此外,該模型僅可允許對(duì)視圖的訪問以提供視圖標(biāo)識(shí)符的列表,獲得視圖屬性的列表,以及執(zhí)行視圖。
視圖用作數(shù)據(jù)庫(kù)中它所對(duì)應(yīng)的特定表的安全代理。此外,通過使匹配于用戶角色和用戶特權(quán)與表—行關(guān)聯(lián)和特權(quán)的簡(jiǎn)單查詢條件附加到視圖,可以用相對(duì)容易的方式提供安全性。此外,因?yàn)榻?jīng)由DBMS進(jìn)行訪問,所以不需要進(jìn)一步編碼接口方法以提供與用于處理CRM數(shù)據(jù)的次級(jí)應(yīng)用的互操作性。這樣,可以進(jìn)行有效的數(shù)據(jù)庫(kù)提取和查詢過濾,而無(wú)需了解代碼的數(shù)據(jù)分析員。
圖1示出了可根據(jù)權(quán)利要求操作的計(jì)算系統(tǒng)的框圖。
圖2示出了使用Microsoft CRM和Microsoft SQL Server的現(xiàn)有CRM-DBMS模型的普通配置。
圖3示出了所要求的系統(tǒng)的實(shí)施例。
圖4示出了為實(shí)現(xiàn)所要求的方法和系統(tǒng)的DBMS的可能的一組安全參數(shù)。
圖5示出了用于權(quán)利要求的實(shí)施例的視圖定義的流程圖。
圖6示出了使用安全視圖實(shí)現(xiàn)的安全過程。
具體實(shí)施例方式
雖然以下文本闡述了許多不同實(shí)施例的詳細(xì)描述,但應(yīng)理解,描述的法律范圍由本專利結(jié)尾處闡述的權(quán)利要求書的文字限定。詳細(xì)描述僅僅是示例性的而非描述所有可能的實(shí)施例,因?yàn)槊枋鏊锌赡軐?shí)施例即使可能也是不切實(shí)際的??捎卯?dāng)前技術(shù)或本申請(qǐng)?zhí)峤磺伴_發(fā)的技術(shù)來實(shí)現(xiàn)大量可選實(shí)施例,其仍落在權(quán)利要求書的范圍之內(nèi)。
還應(yīng)理解,除非用句子“如這里所使用的,術(shù)語(yǔ)‘—’這里定義為...”或類似的句子,否則不明確或通過暗示限制術(shù)語(yǔ)的意思,使其超出其一般或普通意思,且這種術(shù)語(yǔ)不應(yīng)解釋為限制于基于本專利任何部分(權(quán)利要求的語(yǔ)言之外)中進(jìn)行的任何陳述的范圍內(nèi)。本專利最后部分的權(quán)利要求書中所述的任何術(shù)語(yǔ)在本專利中按與單個(gè)意思相一致地引用,這是為了清楚起見而不干擾讀者,但并非有意使這種權(quán)利要求術(shù)語(yǔ)通過暗示或其它方式限制于該單個(gè)意思。最后,除非通過敘述單詞“裝置”和功能而不敘述任何結(jié)構(gòu)來定義權(quán)利要求元素,不應(yīng)認(rèn)為任何權(quán)利要求元素的范圍都基于35U.S.C.§112、第六段的應(yīng)用來解釋。
圖1示出了合適計(jì)算系統(tǒng)環(huán)境100的示例,其上實(shí)現(xiàn)了所要求的方法和裝置的組件的系統(tǒng)。計(jì)算系統(tǒng)環(huán)境100僅僅是合適的計(jì)算環(huán)境的一示例而非有意暗示關(guān)于權(quán)利要求書的方法和裝置的使用或功能范圍的任何限制。計(jì)算環(huán)境100不應(yīng)被解釋為具有關(guān)于示例性操作環(huán)境100中說明的任何一個(gè)組件或組件組合的任何依賴或要求。
所要求的方法和裝置的組件可同大量其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置一起操作。適合與權(quán)利要求的方法或裝置一起使用的已知計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持或膝上裝置,多處理器系統(tǒng),基于微處理器的系統(tǒng)、置頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、包括任何以上系統(tǒng)或裝置的分布式計(jì)算環(huán)境,等等。
在由計(jì)算機(jī)執(zhí)行的諸如程序模塊的計(jì)算機(jī)可執(zhí)行指令的普通環(huán)境中描述所要求的方法和裝置的組件。一般,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特殊任務(wù)或?qū)崿F(xiàn)特殊的抽象數(shù)據(jù)類型。這些方法和裝置還可在分布式計(jì)算環(huán)境中實(shí)施,在分布式計(jì)算環(huán)境中通過經(jīng)由通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理裝置執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可位于包括存儲(chǔ)器存儲(chǔ)裝置的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)媒體中。
參考圖1,實(shí)現(xiàn)所要求的方法和裝置的組件的一示例系統(tǒng)包括計(jì)算機(jī)110形式的通用計(jì)算裝置。計(jì)算機(jī)110的組件可包括,但不限于,處理單元120、系統(tǒng)存儲(chǔ)器130和將包括系統(tǒng)存儲(chǔ)器的各種系統(tǒng)組件耦合到處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是幾種總線結(jié)構(gòu)中的任一種,包括使用任何總線架構(gòu)的存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線和本地總線。作為示例而非限制,這樣的架構(gòu)包括工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線、微通道架構(gòu)(MCA)總線、擴(kuò)展ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)本地總線和也稱作Mezzanine總線的外圍組件互連(PCI)總線。
計(jì)算機(jī)110通常包括多種計(jì)算機(jī)可讀媒體。計(jì)算機(jī)可讀媒體可以是可由計(jì)算機(jī)110訪問的任何可用媒體,包括易失性和非易失性媒體、可移動(dòng)和不可移動(dòng)媒體。作為示例而非限制,計(jì)算機(jī)可讀媒體可包括計(jì)算機(jī)存儲(chǔ)媒體和通信媒體。計(jì)算機(jī)存儲(chǔ)媒體包括按用于諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的信息的存儲(chǔ)的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)媒體。計(jì)算機(jī)存儲(chǔ)媒體包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)技術(shù),CD-ROM、數(shù)字通用盤(DVD)或其它光盤存儲(chǔ)、盒式磁帶、磁帶、磁盤存儲(chǔ)或其它磁性存儲(chǔ)裝置,或者可用于存儲(chǔ)所需數(shù)據(jù)并可由計(jì)算機(jī)110訪問的任何其它介質(zhì)。通信介質(zhì)通常包含諸如載波的調(diào)制的數(shù)據(jù)信號(hào)或其它傳輸機(jī)制中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任何信息傳遞媒體。術(shù)語(yǔ)“調(diào)制的數(shù)據(jù)信號(hào)”表示具有使其一個(gè)或多個(gè)特征按一定方式設(shè)定或變化以在信號(hào)中編碼信息的信號(hào)。作為示例而非限制,通信媒體包括諸如有線網(wǎng)絡(luò)或直線連接的有線媒體以及諸如聲學(xué)、RF、紅外線和其它無(wú)線媒體的無(wú)線媒體。以上的任何組合也應(yīng)包含在計(jì)算機(jī)可讀媒體的范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器130包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)媒體,諸如只讀存儲(chǔ)器(ROM)131和隨機(jī)存取存儲(chǔ)器(RAM)132。包含基本例程的基本輸入/輸出系統(tǒng)133(BIOS)通常存儲(chǔ)于ROM 131中,這些基本例程幫助例如在啟動(dòng)過程中在計(jì)算機(jī)110內(nèi)的元件之間傳輸信息。RAM132通常包含可立即訪問和/或當(dāng)前由處理單元120操作的數(shù)據(jù)和/或程序模塊。作為示例而非限制,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110還可包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)存儲(chǔ)媒體。僅作為示例,圖1示出了從不可移動(dòng)的非易失性磁性媒體讀取或?qū)懭氲挠脖P驅(qū)動(dòng)器140、從可移動(dòng)的非易失性磁盤152讀取或?qū)懭氲拇疟P驅(qū)動(dòng)器151以及從諸如CD ROM或其它光學(xué)媒體的可移動(dòng)的非易失性光盤156讀取或?qū)懭氲墓獗P驅(qū)動(dòng)器155。示例性操作環(huán)境中可使用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)媒體包括,但不限于,磁帶盒、閃存卡、數(shù)字通用盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動(dòng)器141通常經(jīng)過諸如接口140的不可移動(dòng)的存儲(chǔ)器接口連接到系統(tǒng)總線121,且磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155通常借助諸如接口150的可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線121。
圖1所示的上述驅(qū)動(dòng)器和它們的相關(guān)計(jì)算機(jī)存儲(chǔ)媒體為計(jì)算機(jī)110提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如圖1中,硬盤驅(qū)動(dòng)器141被示作存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。應(yīng)注意,這些組件可與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同或不同。操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147這里被給予不同數(shù)字,以至少說明它們是不同的拷貝。用戶可通過諸如鍵盤162和通常稱作鼠標(biāo)、軌跡球或觸摸墊的定位裝置161的輸入裝置將命令和信息輸入計(jì)算機(jī)20。其它輸入裝置(未示出)可包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入裝置常通過與系統(tǒng)總線耦合的用戶輸入接口160連接到處理單元120,但可以通過其它接口和總線結(jié)構(gòu)連接,諸如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器191或其它類型的顯示裝置也經(jīng)由諸如視頻接口190的接口連接到系統(tǒng)總線121。除了監(jiān)視器之外,計(jì)算機(jī)還可包括其它外圍輸出裝置,諸如通過輸出外圍接口190連接的揚(yáng)聲器197和打印機(jī)196。
計(jì)算機(jī)110可使用與諸如遠(yuǎn)程計(jì)算機(jī)180的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等裝置或其它普通網(wǎng)絡(luò)接點(diǎn),且通常包括以上關(guān)于計(jì)算機(jī)110描述的許多或全部元件,盡管圖1中僅示出存儲(chǔ)器存儲(chǔ)裝置181。圖1中所述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可包括其它網(wǎng)絡(luò)。這種聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是普遍的。
在LAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170連接到LAN 171。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)110通常包括調(diào)制解調(diào)器172或用于在諸如因特網(wǎng)的WAN 173上建立連接的其它裝置。內(nèi)置或外置的調(diào)制解調(diào)器172可經(jīng)由用戶輸入接口160或其它合適機(jī)制連接到系統(tǒng)總線121。在聯(lián)網(wǎng)環(huán)境中,以上相對(duì)于計(jì)算機(jī)110描述的程序模塊或其一部分可存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)裝置中。作為示例而非限制,圖1示出了駐留在存儲(chǔ)器裝置181中的遠(yuǎn)程應(yīng)用程序185??梢岳斫猓镜木W(wǎng)絡(luò)連接是示例性的且可以使用在計(jì)算機(jī)之間建立通信鏈接的其它裝置。
圖2示出了使用Microsoft CRM系統(tǒng)200和Microsoft SQL Server 210的現(xiàn)有CRM-DBMS模型的普通配置。當(dāng)前,除了通過Microsoft CRM系統(tǒng)200本身或被授權(quán)管理DBMS的系統(tǒng)管理員220之外,Microsoft CRM拒絕經(jīng)由DBMS對(duì)CRM數(shù)據(jù)庫(kù)的全部訪問,如框215所示。但是,除了其用戶接口,Microsoft CRM向Microsoft CRM數(shù)據(jù)庫(kù)提供了一種用于訪問數(shù)據(jù)的附加方法。該訪問是利用被稱作ExecuteQuery 230的Microsoft CRM應(yīng)用編程接口(API)來完成的,該應(yīng)用編程接口使用Fetch XML,一種XML格式的查詢命令代碼。用戶240可編寫Fetch XML命令并將這些命令發(fā)送到ExecuteQuery 230。ExecuteQuery隨后可解釋該FetchXML查詢命令,訪問Microsoft CRM數(shù)據(jù)庫(kù)250,并返回結(jié)果集。雖然該方法看起來繞過了CRM-DBMS結(jié)構(gòu)的安全,但在提供結(jié)果集之前API實(shí)際上對(duì)查詢命令執(zhí)行了基于Microsoft CRM的安全過濾。如上所述,典型的用戶通常不會(huì)很好地具備編寫應(yīng)用級(jí)代碼,以便從應(yīng)用中提取數(shù)據(jù)的能力。即使采用ExecuteQuery接口230,編寫Fetch XML也是復(fù)雜和費(fèi)時(shí)的。
圖2進(jìn)一步示出了管理含數(shù)據(jù)庫(kù)表251、261的集合的幾個(gè)數(shù)據(jù)庫(kù)250、260的Microsoft SQL Server 210。通常,分離的數(shù)據(jù)庫(kù)實(shí)例可用于容納用于特殊應(yīng)用的表的集合。在Microsoft CRM系統(tǒng)200的示例中,DBMS 210可具有一個(gè)被指定用作Microsoft CRM數(shù)據(jù)庫(kù)250的數(shù)據(jù)庫(kù),它可存儲(chǔ)諸如客戶信息的與CRM系統(tǒng)相關(guān)的大部分?jǐn)?shù)據(jù)以及與CRM系統(tǒng)相關(guān)的各種任務(wù)信息。DBMS可管理幾個(gè)數(shù)據(jù)庫(kù)并可能只有一個(gè)應(yīng)用數(shù)據(jù)庫(kù)實(shí)現(xiàn)所要求的方法和系統(tǒng)。對(duì)于CRM數(shù)據(jù)庫(kù)250,圖2示出對(duì)于一般用戶240,阻斷對(duì)CRM數(shù)據(jù)庫(kù)250的訪問,且對(duì)CRM數(shù)據(jù)的所有訪問必須經(jīng)由CRM系統(tǒng)200進(jìn)行,或者以程序方式通過諸如ExecuteQuery 230的API。
權(quán)利要求的業(yè)務(wù)過程的實(shí)施例于圖3中示出,其示出了訪問CRM數(shù)據(jù)庫(kù)310的Microsoft Excel 300的使用。Microsoft Excel是用于分析應(yīng)用數(shù)據(jù)的普通工具。因?yàn)镸icrosoft套裝提供對(duì)使用SQL和ODBC的任何DBMS的連接能力,MicrosoftExcel可連接到Microsoft SQL Server 320并隨后連接到Microsoft CRM數(shù)據(jù)庫(kù)310。事實(shí)上,提供對(duì)使用SQL和ODBC的DBMS的連接能力的許多第三方系統(tǒng)330也可連接到Microsoft SQL Server 320。Microsoft Excel隨后可查詢與特殊CRM表350相對(duì)應(yīng)的可用視圖340,并請(qǐng)求信息。此外,該請(qǐng)求可基于用戶360的角色和特權(quán)信息提供行過濾的結(jié)果?,F(xiàn)有技術(shù)的系統(tǒng)可繼續(xù)要求完全開放的數(shù)據(jù)庫(kù)或?qū)RM系統(tǒng)本身的定制接口。此外,現(xiàn)有技術(shù)系統(tǒng)不提供所要求系統(tǒng)的特定實(shí)施例的唯一行過濾能力,其中可基于分配給特殊用戶及行的角色和特權(quán)以來過濾行。
圖3還示出了CRM數(shù)據(jù)庫(kù)310具有一組表350的一組對(duì)應(yīng)視圖340??舍槍?duì)通過DBMS登錄到數(shù)據(jù)庫(kù)的用戶保護(hù)每個(gè)表350。此外,每個(gè)表350都實(shí)際上都可向一般用戶360隱藏以提升安全性(由虛線示出)。視圖340可用作訪問數(shù)據(jù)庫(kù)表350的代理。應(yīng)注意,雖然能看見視圖340,但可保護(hù)它們的實(shí)際定義以防止用戶發(fā)現(xiàn)視圖的實(shí)現(xiàn)。在某些情況中,將對(duì)視圖的訪問限制于以下方面是有利的啟用可用視圖的列表,用于視圖執(zhí)行的參數(shù)的列表,以及用于執(zhí)行所選視圖的執(zhí)行特權(quán)。
圖4示出了DBMS為了實(shí)現(xiàn)權(quán)利要求的實(shí)施例所具有的參數(shù)設(shè)定。這些參數(shù)設(shè)定可以是用戶特定的或者可以由系統(tǒng)管理員根據(jù)特殊情況改變。例如,有時(shí)系統(tǒng)管理員會(huì)允許業(yè)務(wù)開發(fā)者修改視圖定義,在這種情況中業(yè)務(wù)開發(fā)者將被提供修改特權(quán)。在其它情形中,提供超過圖4所示設(shè)定的任何附加特權(quán)是不合適的。例如,可能從不向銷售人員提供修改視圖定義的權(quán)利,因?yàn)檫@將會(huì)允許銷售人員觀看與其它銷售人員相關(guān)的未授權(quán)數(shù)據(jù)。應(yīng)注意,雖然這些設(shè)定被應(yīng)用于多數(shù)DBMS用戶,但系統(tǒng)管理員通常對(duì)數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象(包括表和視圖兩者)具有完全訪問。
圖5示出了用于權(quán)利要求的實(shí)施例的視圖定義的流程圖500。在該流程圖中,安全例程501可對(duì)數(shù)據(jù)檢查角色502和特權(quán)503。如果特權(quán)檢查503失敗,則會(huì)用空數(shù)據(jù)集返回記錄。角色檢查502失敗會(huì)導(dǎo)致完全隱藏記錄509。此外,除了安全過濾,視圖還執(zhí)行選擇清單轉(zhuǎn)換505、物理列名字與邏輯數(shù)據(jù)庫(kù)名字504、507的映射,以及日期—時(shí)間轉(zhuǎn)換506,使數(shù)據(jù)分析員更容易用數(shù)據(jù)集508進(jìn)行工作。日期—時(shí)間轉(zhuǎn)換可用于獲得具有一種格式的表的日期或時(shí)間屬性并轉(zhuǎn)換成第二種格式,諸如基于應(yīng)用的格式。選擇清單轉(zhuǎn)換可用于向選擇清單值提供一描述字符串。例如,發(fā)貨動(dòng)作列表的選擇清單轉(zhuǎn)換可將諸如0、1、2、3的數(shù)據(jù)庫(kù)選擇清單值轉(zhuǎn)換成FedEx、UPS、USPostMail等。此外,物理列名字到邏輯數(shù)據(jù)庫(kù)名字的映射可允許將用戶友好的名字分配給數(shù)據(jù)庫(kù)命名架構(gòu)中使用的列特定的名字。
CRM系統(tǒng)可將業(yè)務(wù)層次結(jié)構(gòu)集成入其安全實(shí)現(xiàn)并常包括與所有者和業(yè)務(wù)單元相對(duì)應(yīng)的它們數(shù)據(jù)實(shí)體中的字段。諸如Microsoft Windows的操作系統(tǒng)也可包含層次結(jié)構(gòu),幫助用戶角色參加其中角色具有一組特權(quán)的組。在權(quán)利要求的實(shí)施例中,安全視圖可被設(shè)計(jì)成基于層次所有權(quán)結(jié)構(gòu)返回行,充分利用現(xiàn)有的CRM應(yīng)用和操作系統(tǒng)環(huán)境。該潛在安全檢查模型在圖6中示出。訪問檢查過程600首先確定用戶是否是對(duì)象的所有者,如框601所示。如果是,則在框602中用戶具有完全的訪問。如果用戶不是對(duì)象所有者,則例程610基于對(duì)象的所有權(quán)關(guān)系確定訪問該對(duì)象的所需特權(quán)深度。如果用戶和對(duì)象屬于相同的業(yè)務(wù)單元,框611,則最小深度是本地(Local)612。如果對(duì)象的所有業(yè)務(wù)單元與用戶的業(yè)務(wù)單元相同,框613,則最小所需深度是深入(Deep)614。如果對(duì)象在與用戶相同的組織中,框615,則最小所需深度是全局(Global)616。一旦計(jì)算出最小特權(quán)深度,框620、621和622就檢查用戶的特權(quán)是否具有最小所需深度。如果用戶的特權(quán)具有最小所需深度或以上,如在框620、621和622中所確定的,就在框602中準(zhǔn)許訪問。如果否,則例程600在框630中確定對(duì)象該對(duì)象是否被明確共享給用戶或用戶作為其成員的團(tuán)隊(duì)。如果是,則在框602中準(zhǔn)許訪問,否則在框640中拒絕訪問。
圖6所示的特權(quán)深度被分類為基本、本地、深入或全局。具有基本特權(quán)深度的用戶具有對(duì)該用戶所有的、共享給該用戶的或者共享給該用戶作為其成員的團(tuán)隊(duì)的任何對(duì)象的權(quán)限。具有本地特權(quán)深度的用戶具有基本特權(quán)深度的權(quán)利,并且還具有對(duì)用戶的業(yè)務(wù)單元中的任何對(duì)象的權(quán)利。具有深入特權(quán)深度的用戶具有本地特權(quán)深度的權(quán)利,并且還具有對(duì)用戶所屬業(yè)務(wù)單元的子業(yè)務(wù)中的任何對(duì)象的權(quán)利。這包括任何深度處的子業(yè)務(wù),而不僅僅是直接層次的子業(yè)務(wù),因此包括子業(yè)務(wù)的子業(yè)務(wù)。具有全局特權(quán)深度的用戶具有對(duì)用戶組織中的任何對(duì)象的權(quán)限(因此,全局是所有其它特權(quán)級(jí)別的超集)。
可用于實(shí)現(xiàn)圖6的安全過程的SQL語(yǔ)句如下所示SELECT[要檢索的Account表中的列]FROM Account
WHERE(--由用戶所有的對(duì)象Account.OwningUser=[Current User ID]or--由用戶的業(yè)務(wù)單元所有的對(duì)象-本地訪問Account.OwningBusinessUnit=[Current User Business ID]--基于角色的訪問or--深入訪問(Account.OwningBusinessUnit in Select biz.SubBusinessId fromBusinessUnitMap as biz where biz.BusinessId=u.BusinessUnitId)and PrivilegeDepth=[Deep]or--全局訪問(Account.OwningBusinessUnit in Select org.SubBusinessId fromOrganizationMap org where org.OrganizationId=u.OrganizationId)and PrivilegeDepth=[Global]or)--共享給用戶的對(duì)象orAccount.AccountId in(select POA.ObjectId from PrincipalObjectAccess POAjoin SystemUserPrincipals sup on POA.PrincipalId=sup.PrincipalIdwhere sup.SystemUserId=[Current User ID]and
POA.ObjectTypeCode=2AND(POA.AccessRightsMask & 1)=1)與使用安全描述符字段以提供用于基于API的安全處理的批量指令的現(xiàn)有安全模型不同,本權(quán)利要求可依靠?jī)H引用每個(gè)數(shù)據(jù)庫(kù)對(duì)象的離散所有權(quán)屬性的安全模型,這些屬性常常已經(jīng)是對(duì)象的一般屬性結(jié)構(gòu)的一部分。如上所述,安全特權(quán)可在基于所有權(quán)關(guān)系的集合中被處理。這樣,處理可以更快。此外,因?yàn)樗蟮姆椒ê拖到y(tǒng)的安全模型完全在DBMS中處理行,而非依靠API,所以處理可以更快,因?yàn)閷S肈BMS處理內(nèi)部指令常比在通信通道上檢索行集合并解釋較大的安全描述符的API更快。
此外,CRM-DBMS系統(tǒng)的用戶現(xiàn)在可經(jīng)由安全視圖提供的虛擬表與數(shù)據(jù)庫(kù)表連接。用戶可用與使用與操作系統(tǒng)集成的安全系統(tǒng)的SQL-ODBC驅(qū)動(dòng)器兼容的其它分析工具的主機(jī)執(zhí)行數(shù)據(jù)分析。它向諸如Microsoft Offic的應(yīng)用套裝提供無(wú)縫集成,因?yàn)橛脩衄F(xiàn)在可以使用類似查詢向?qū)У墓ぞ叽蜷_視圖,類似于打開數(shù)據(jù)庫(kù)表,而不需要用戶清楚下層實(shí)現(xiàn)。
作為示例,用戶可使用安全視圖將CRM相關(guān)數(shù)據(jù)輸入諸如Excel的電子表格程序,其中可以對(duì)數(shù)據(jù)進(jìn)行大量統(tǒng)計(jì)操作。這可以在不知道任何計(jì)算機(jī)編碼語(yǔ)言的情況下實(shí)現(xiàn),因?yàn)榭梢允褂煤?jiǎn)單的彈出查詢向?qū)ь愋偷墓ぞ?。此外,可以完成輸入而不必?jīng)過分離的安全過程來訪問數(shù)據(jù)庫(kù),因?yàn)榘踩窒抻贒BMS。最后,通過對(duì)數(shù)據(jù)的視圖而非實(shí)際數(shù)據(jù)進(jìn)行操作,可以完成輸入和分析而不更改數(shù)據(jù)庫(kù)中的下層數(shù)據(jù)。
雖然以上文本闡述了許多不同實(shí)施例的詳細(xì)描述,但應(yīng)理解,本專利的范圍由本專利結(jié)尾處闡述的權(quán)利要求的文字限定。詳細(xì)描述僅僅是說明性的而非描述所有可能的實(shí)施例,因?yàn)槊枋鏊锌赡軐?shí)施例即便可能也是不切實(shí)際的。利用當(dāng)前技術(shù)或者本專利提交日期之后開發(fā)的技術(shù)可以實(shí)現(xiàn)大量可選實(shí)施例,這些仍落在權(quán)利要求的范圍之內(nèi)。
因此,可在這里所描述和說明的技術(shù)和結(jié)構(gòu)中進(jìn)行許多修改和變形,而不背離本權(quán)利要求的精神和范圍。因此,應(yīng)理解,這里描述的方法和裝置僅僅是說明性的而非限制權(quán)利要求書的范圍。
權(quán)利要求
1.一種具有用于創(chuàng)建數(shù)據(jù)庫(kù)的安全視圖的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),包括創(chuàng)建包含至少一個(gè)數(shù)據(jù)庫(kù)表和至少一個(gè)數(shù)據(jù)庫(kù)視圖的數(shù)據(jù)庫(kù),其中該數(shù)據(jù)庫(kù)表具有行ID、行業(yè)務(wù)單元和行所有者;允許用戶訪問和執(zhí)行所述數(shù)據(jù)庫(kù)視圖同時(shí)防止用戶查看和直接訪問所述數(shù)據(jù)庫(kù)表,其中所述用戶具有相關(guān)聯(lián)的用戶ID、相關(guān)聯(lián)的用戶業(yè)務(wù)單元、相關(guān)聯(lián)的用戶業(yè)務(wù)組和相關(guān)聯(lián)的特權(quán)深度;以及基于來自包括用戶ID、用戶業(yè)務(wù)單元、用戶業(yè)務(wù)組和特權(quán)深度的參數(shù)集合中的至少一個(gè)參數(shù)以及來自包括行ID、行業(yè)務(wù)單元和行所有者的參數(shù)集合中的至少一個(gè)參數(shù),為所述數(shù)據(jù)庫(kù)視圖選擇所述數(shù)據(jù)庫(kù)表的行的集合。
2.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括執(zhí)行數(shù)據(jù)庫(kù)查找,以獲得用戶ID、用戶業(yè)務(wù)單元、用戶業(yè)務(wù)組、特權(quán)深度、行ID、行業(yè)務(wù)單元和行所有者。
3.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括搜索一高速緩存,以獲得包括用戶ID、用戶業(yè)務(wù)單元、用戶業(yè)務(wù)組以及特權(quán)深度的集合中的至少一個(gè),同時(shí)執(zhí)行數(shù)據(jù)庫(kù)查找以獲得包括行ID、行業(yè)務(wù)單元和行所有者的集合中的至少一個(gè)。
4.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括基于以下至少一個(gè)選擇行用戶是否是行所有者;行業(yè)務(wù)單元是否是用戶業(yè)務(wù)單元且特權(quán)深度是否是本地;行業(yè)務(wù)單元是否包含在與用戶業(yè)務(wù)單元相關(guān)聯(lián)的業(yè)務(wù)單元的集合中以及特權(quán)深度是否是深入;行業(yè)務(wù)單元是否在與用戶業(yè)務(wù)組相關(guān)聯(lián)的業(yè)務(wù)單元的集合之中以及特權(quán)深度是否是全局;以及行ID是否與用戶ID相關(guān)聯(lián)。
5.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括向用戶分配用于查看和訪問所述數(shù)據(jù)庫(kù)視圖的特權(quán)。
6.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括不向用戶分配用于查看和訪問所述數(shù)據(jù)庫(kù)表的特權(quán)。
7.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括使視圖能被列在SQL列表視圖命令中。
8.如權(quán)利要求5所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述特權(quán)包括允許用戶查看視圖的列表。
9.如權(quán)利要求5所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述特權(quán)包括允許用戶執(zhí)行視圖。
10.如權(quán)利要求5所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述特權(quán)包括允許用戶確定視圖的屬性的集合。
11.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括對(duì)所選行執(zhí)行選擇清單評(píng)估,對(duì)所選行執(zhí)行日期一時(shí)間轉(zhuǎn)換,對(duì)視圖參數(shù)執(zhí)行邏輯名到物理名轉(zhuǎn)換,以及對(duì)所選行執(zhí)行物理名到邏輯名轉(zhuǎn)換中的至少一個(gè)。
12.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果用戶沒有所需特權(quán)深度就返回空集。
13.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括如果用戶沒有已知的用戶ID就返回空集。
14.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括使用數(shù)據(jù)庫(kù)管理系統(tǒng)來控制對(duì)所述數(shù)據(jù)庫(kù)表和視圖的訪問。
15.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括經(jīng)由與所述數(shù)據(jù)庫(kù)管理系統(tǒng)的連接將視圖結(jié)果發(fā)送給非數(shù)據(jù)庫(kù)應(yīng)用。
16.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述非數(shù)據(jù)庫(kù)應(yīng)用是電子表格程序。
17.一種計(jì)算機(jī)系統(tǒng),它包括提供用戶驗(yàn)證服務(wù)的操作系統(tǒng);用于管理數(shù)據(jù)庫(kù)集合的數(shù)據(jù)庫(kù)管理系統(tǒng),該數(shù)據(jù)庫(kù)管理系統(tǒng)使用所述用戶驗(yàn)證服務(wù)來驗(yàn)證與數(shù)據(jù)庫(kù)管理系統(tǒng)相連的用戶;客戶關(guān)系管理系統(tǒng);由所述客戶關(guān)系管理系統(tǒng)通過所述數(shù)據(jù)庫(kù)管理系統(tǒng)訪問的客戶數(shù)據(jù)庫(kù),其中所述客戶數(shù)據(jù)庫(kù)包括客戶數(shù)據(jù)庫(kù)表;存儲(chǔ)在客戶數(shù)據(jù)庫(kù)處的視圖定義,用于提供客戶數(shù)據(jù)庫(kù)表的行,其中該數(shù)據(jù)庫(kù)管理系統(tǒng)使登錄到數(shù)據(jù)庫(kù)管理系統(tǒng)的用戶能查看視圖定義的列表并執(zhí)行該視圖,同時(shí)防止用戶查看和訪問該客戶數(shù)據(jù)庫(kù)表;且其中,所述視圖基于來自由用戶ID、用戶業(yè)務(wù)單元、用戶業(yè)務(wù)組和特權(quán)深度構(gòu)成的參數(shù)集合中的至少一個(gè)參數(shù)以及來自由行ID、行業(yè)務(wù)單元和行所有者構(gòu)成的參數(shù)集合中的至少一個(gè)參數(shù)提供客戶數(shù)據(jù)庫(kù)表的行。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述客戶關(guān)系管理系統(tǒng)包括多個(gè)數(shù)據(jù)庫(kù)表和多個(gè)視圖定義,其中每個(gè)客戶數(shù)據(jù)庫(kù)表都具有相應(yīng)的視圖定義。
19.如權(quán)利要求17所述的系統(tǒng),其特征在于,在以下一種情況下,視圖定義提供客戶數(shù)據(jù)庫(kù)表的行執(zhí)行視圖定義的用戶是行所有者;行業(yè)務(wù)單元是用戶業(yè)務(wù)單元且在特權(quán)深度是本地時(shí);當(dāng)行業(yè)務(wù)單元在與用戶業(yè)務(wù)單元相關(guān)聯(lián)的業(yè)務(wù)單元集合之中且在特權(quán)深度是深入時(shí);當(dāng)行業(yè)務(wù)單元在與用戶業(yè)務(wù)組相關(guān)聯(lián)的業(yè)務(wù)單元集合之中且在特權(quán)深度是全局時(shí);以及當(dāng)行ID與用戶ID相關(guān)聯(lián)時(shí)。
20.一種計(jì)算裝置,它包括能產(chǎn)生視頻圖像的顯示單元;輸入裝置;操作上耦合到所述顯示單元和所述輸入裝置的處理裝置,所述處理裝置包括處理器和操作上耦合到所述處理器的存儲(chǔ)器;網(wǎng)絡(luò)接口,它與網(wǎng)絡(luò)和所述處理裝置相連接;所述處理裝置被編程,以便管理包括表和視圖的數(shù)據(jù)庫(kù),其中該處理裝置阻止用戶訪問和查看表同時(shí)該處理裝置允許用戶訪問和執(zhí)行視圖;以及其中,該視圖基于來自由用戶ID、用戶業(yè)務(wù)單元、用戶業(yè)務(wù)組和用戶特權(quán)深度構(gòu)成的參數(shù)集合中的至少一個(gè)參數(shù)以及來自由行ID、行業(yè)務(wù)單元和行所有者構(gòu)成的參數(shù)集合中的至少一個(gè)參數(shù)選擇該表的行的集合。
全文摘要
本申請(qǐng)敘述了一種方法和系統(tǒng),用于使用實(shí)現(xiàn)安全協(xié)議的視圖定義訪問按其它方式不可訪問的DBMS的應(yīng)用數(shù)據(jù)庫(kù)中的信息。
文檔編號(hào)G06F17/30GK1794232SQ200510127120
公開日2006年6月28日 申請(qǐng)日期2005年11月22日 優(yōu)先權(quán)日2004年12月22日
發(fā)明者E·A·馬蒂南茲, J·S·格雷瓦爾, 范岷, T·M·賴特爾 申請(qǐng)人:微軟公司