本申請(qǐng)涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種數(shù)據(jù)庫的訪問權(quán)限處理方法、裝置及系統(tǒng)。
背景技術(shù):
為了存儲(chǔ)于數(shù)據(jù)庫中的數(shù)據(jù)表的安全,會(huì)通過用戶訪問權(quán)限來實(shí)現(xiàn)對(duì)用戶訪問數(shù)據(jù)表的控制。然而,當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)表發(fā)生重建或刪除后,數(shù)據(jù)表的用戶權(quán)限發(fā)生丟失,導(dǎo)致用戶對(duì)數(shù)據(jù)表的訪問異常。
以數(shù)據(jù)倉庫為例,按照預(yù)先設(shè)置的模型,將匯集整理后的數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)倉庫中。然而,隨著數(shù)據(jù)倉庫數(shù)據(jù)量越來越龐大,業(yè)務(wù)越來越復(fù)雜,之前的模型設(shè)計(jì)會(huì)因?yàn)楦鞣N業(yè)務(wù)不斷的發(fā)生變化,而使得需要對(duì)數(shù)據(jù)倉庫中的數(shù)據(jù)表不斷的進(jìn)行重構(gòu),導(dǎo)致外圍系統(tǒng)依賴賬號(hào)失去權(quán)限影響外圍系統(tǒng)正常工作。
相關(guān)技術(shù)中,可以通過如下兩種方案來解決數(shù)據(jù)表被刪除重建后權(quán)限丟失的問題,其一是等待直到用戶發(fā)現(xiàn)自己失去權(quán)限,然后由用戶再次發(fā)起一遍對(duì)數(shù)據(jù)表的申請(qǐng),走一次預(yù)設(shè)申請(qǐng)流程;其二是在數(shù)據(jù)表重建之前,先從元數(shù)據(jù)中查詢待重建或刪除的數(shù)據(jù)表的用戶權(quán)限情況,然后再重新批量的執(zhí)行一次授權(quán);
然而,在相關(guān)技術(shù)的解決方案中,如果等待直到用戶自己發(fā)現(xiàn)失去權(quán)限,而被動(dòng)等待用戶自主重新申請(qǐng),可能會(huì)導(dǎo)致依賴該數(shù)據(jù)表的所有作業(yè)執(zhí)行出錯(cuò),重復(fù)的申請(qǐng)也導(dǎo)致資源浪費(fèi)耗時(shí)、耗力;另一方面,如果采用從元數(shù)據(jù)中獲取待重建或刪除的數(shù)據(jù)表的用戶權(quán)限的方案,在數(shù)據(jù)表已經(jīng)重建后將無法正確獲取到原始數(shù)據(jù)表的用戶權(quán)限,而且,根據(jù)每個(gè)用戶所對(duì)應(yīng)的用戶權(quán)限去賦權(quán),會(huì)增加數(shù)據(jù)表擁有者的工作量。
針對(duì)上述由于數(shù)據(jù)倉庫中的表被刪除或重建后用戶權(quán)限丟失,而造成的重新對(duì)用戶進(jìn)行授權(quán)流程繁瑣且效率低的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提供了一種數(shù)據(jù)庫的訪問權(quán)限處理方法、裝置及系統(tǒng),以至少解決由于數(shù)據(jù)倉庫中的表被刪除或重建后用戶權(quán)限丟失,而造成的重新對(duì)用戶進(jìn)行授權(quán)流 程繁瑣且效率低的技術(shù)問題。
根據(jù)本申請(qǐng)實(shí)施例的一個(gè)方面,提供了一種數(shù)據(jù)庫的訪問權(quán)限處理方法,包括:接收用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求,其中,權(quán)限繼承請(qǐng)求為數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后觸發(fā)生成的請(qǐng)求;解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息;根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限;將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
根據(jù)本申請(qǐng)實(shí)施例的另一個(gè)方面,還提供了一種數(shù)據(jù)庫的訪問權(quán)限處理裝置,包括:接收模塊,用于接收用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求,其中,權(quán)限繼承請(qǐng)求為數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后觸發(fā)生成的請(qǐng)求;解析模塊,用于解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息;查詢模塊,用于根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限;賦權(quán)模塊,用于將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
根據(jù)本申請(qǐng)實(shí)施例的又一個(gè)方面,還提供了一種數(shù)據(jù)庫的訪問權(quán)限處理系統(tǒng),包括:數(shù)據(jù)庫服務(wù)器,用于保存數(shù)據(jù)庫,在數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后,觸發(fā)生成用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求;權(quán)限處理系統(tǒng),用于接收并解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息,在根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限之后,將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
在本申請(qǐng)實(shí)施例中,采用接收用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求,其中,權(quán)限繼承請(qǐng)求為數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后觸發(fā)生成的請(qǐng)求的方式,通過解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息,達(dá)到了根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限的目的,從而實(shí)現(xiàn)了將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表的技術(shù)效果,進(jìn)而解決了由于數(shù)據(jù)倉庫中的表被刪除或重建后用戶權(quán)限丟失,而造成的重新對(duì)用戶進(jìn)行授權(quán)流程繁瑣且效率低的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1是根據(jù)本申請(qǐng)實(shí)施例的一種數(shù)據(jù)庫的訪問權(quán)限處理方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖;
圖2是根據(jù)本申請(qǐng)實(shí)施例一的數(shù)據(jù)庫的訪問權(quán)限處理方法的流程示意圖;
圖3是根據(jù)本申請(qǐng)實(shí)施例一的一種可選的數(shù)據(jù)庫的訪問權(quán)限處理方法的交互示意圖;
圖4是根據(jù)本申請(qǐng)實(shí)施例一的一種可選的數(shù)據(jù)庫的訪問權(quán)限處理方法的流程圖;
圖5是根據(jù)本申請(qǐng)實(shí)施例二的數(shù)據(jù)庫的訪問權(quán)限處理裝置的結(jié)構(gòu)示意圖;
圖6是根據(jù)本申請(qǐng)實(shí)施例二的一種可選的解析模塊的結(jié)構(gòu)示意圖;
圖7是根據(jù)本申請(qǐng)實(shí)施例二的一種可選的查詢模塊的結(jié)構(gòu)示意圖;
圖8是根據(jù)本申請(qǐng)實(shí)施例二的一種可選的數(shù)據(jù)庫的訪問權(quán)限處理裝置的結(jié)構(gòu)示意圖;
圖9是根據(jù)本申請(qǐng)實(shí)施例二的一種可選的賦權(quán)模塊的結(jié)構(gòu)示意圖;
圖10是根據(jù)本申請(qǐng)實(shí)施例二的另一種可選的數(shù)據(jù)庫的訪問權(quán)限處理裝置的結(jié)構(gòu)示意圖;
圖11是根據(jù)本申請(qǐng)實(shí)施例三的數(shù)據(jù)庫的訪問權(quán)限處理系統(tǒng)的結(jié)構(gòu)示意圖;以及
圖12是根據(jù)本申請(qǐng)實(shí)施例的一種計(jì)算機(jī)終端的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分的實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
需要說明的是,本申請(qǐng)的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
下面對(duì)本申請(qǐng)涉及到的術(shù)語進(jìn)行解釋如下:
開放數(shù)據(jù)處理服務(wù)(Open Data Processing Service,簡(jiǎn)稱ODPS),是阿里云自主研發(fā),提供TB/PB級(jí)數(shù)據(jù)的分布式處理能力,適用于連線數(shù)據(jù)的處理、數(shù)據(jù)分析、數(shù)據(jù)挖掘和商業(yè)智能等領(lǐng)域。
實(shí)施例1
根據(jù)本申請(qǐng)實(shí)施例,還提供了一種數(shù)據(jù)庫的訪問權(quán)限處理方法的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本申請(qǐng)實(shí)施例一所提供的方法實(shí)施例可以在移動(dòng)終端、計(jì)算機(jī)終端或者類似的運(yùn)算裝置中執(zhí)行。以運(yùn)行在計(jì)算機(jī)終端上為例,圖1是本申請(qǐng)實(shí)施例的一種數(shù)據(jù)庫的訪問權(quán)限處理方法的計(jì)算機(jī)終端的硬件結(jié)構(gòu)框圖。如圖1所示,計(jì)算機(jī)終端10可以包括一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器102(處理器102可以包括但不限于微處理器MCU或可編程邏輯器件FPGA等的處理裝置)、用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器104、以及用于通信功能的傳輸模塊106。本領(lǐng)域普通技術(shù)人員可以理解,圖1所示的結(jié)構(gòu)僅為示意,其并不對(duì)上述電子裝置的結(jié)構(gòu)造成限定。例如,計(jì)算機(jī)終端10還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。
存儲(chǔ)器104可用于存儲(chǔ)應(yīng)用軟件的軟件程序以及模塊,如本申請(qǐng)實(shí)施例中的數(shù)據(jù)庫的訪問權(quán)限處理方法對(duì)應(yīng)的程序指令/模塊,處理器102通過運(yùn)行存儲(chǔ)在存儲(chǔ)器104內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的應(yīng)用程序的漏洞檢測(cè)方法。存儲(chǔ)器104可包括高速隨機(jī)存儲(chǔ)器,還可包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器104可進(jìn)一步包括相對(duì)于處理器102遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至計(jì)算機(jī)終端10。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
傳輸裝置106用于經(jīng)由一個(gè)網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù)。上述的網(wǎng)絡(luò)具體實(shí)例可包括計(jì)算機(jī)終端10的通信供應(yīng)商提供的無線網(wǎng)絡(luò)。在一個(gè)實(shí)例中,傳輸裝置106包括一個(gè)網(wǎng)絡(luò)適配器(Network Interface Controller,NIC),其可通過基站與其他網(wǎng)絡(luò)設(shè)備相連從而可與互聯(lián)網(wǎng)進(jìn)行通訊。在一個(gè)實(shí)例中,傳輸裝置106可以為射頻(Radio Frequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
在上述運(yùn)行環(huán)境下,本申請(qǐng)?zhí)峁┝巳鐖D2所示的數(shù)據(jù)庫的訪問權(quán)限處理方法。圖2是根據(jù)本申請(qǐng)實(shí)施例一的數(shù)據(jù)庫的訪問權(quán)限處理方法的流程圖。此處需要說明的是, 在本申請(qǐng)實(shí)施例中,圖1所示的計(jì)算機(jī)終端10可以為權(quán)限服務(wù)器。
如圖2所示,一種可選的數(shù)據(jù)庫的訪問權(quán)限處理方法包括如下實(shí)施步驟;
步驟S202:可以通過權(quán)限服務(wù)器來接收用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求,其中,權(quán)限繼承請(qǐng)求為數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后觸發(fā)生成的請(qǐng)求;
本申請(qǐng)上述步驟S202中,數(shù)據(jù)庫可以為數(shù)據(jù)庫服務(wù)器中的任意一個(gè)數(shù)據(jù)庫。數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表都可以具有預(yù)先設(shè)置的訪問權(quán)限屬性,其中,訪問權(quán)限的屬性可以包括如下任意一種或多種權(quán)限:讀權(quán)限、寫權(quán)限、刪除權(quán)限或修改權(quán)限等。重建、刪除為對(duì)數(shù)據(jù)庫中包含的數(shù)據(jù)表進(jìn)行的修改操作,在進(jìn)行數(shù)據(jù)表的重建或刪除后,數(shù)據(jù)庫中該數(shù)據(jù)表之前被設(shè)置的訪問權(quán)限可能丟失,使得用戶下一次對(duì)被修改或刪除的數(shù)據(jù)表的訪問遭到拒絕,影響用戶的正常使用。
此處需要說明的是,權(quán)限繼承請(qǐng)求旨在自動(dòng)發(fā)起獲取被重建或刪除的數(shù)據(jù)表的訪問權(quán)限的功能,目的在于利用被重建之前或被刪除之前的數(shù)據(jù)表的訪問權(quán)限來得到重建或刪除的數(shù)據(jù)表的權(quán)限,使得用戶不用重新訪問申請(qǐng)權(quán)限也可以正常訪問被重建或刪除的數(shù)據(jù)表,也就是說,權(quán)限繼承請(qǐng)求用于啟動(dòng)被重建或刪除后的數(shù)據(jù)表自動(dòng)繼承被重建或刪除前的數(shù)據(jù)表的訪問權(quán)限。
此處還需要說明的是,權(quán)限繼承請(qǐng)求可以由用于存儲(chǔ)數(shù)據(jù)庫的數(shù)據(jù)庫服務(wù)器發(fā)出,數(shù)據(jù)庫服務(wù)器與圖1所示的計(jì)算機(jī)終端10具有通信關(guān)系,在對(duì)數(shù)據(jù)庫中的數(shù)據(jù)表進(jìn)行操作時(shí)可以觸發(fā)數(shù)據(jù)庫中的觸發(fā)器,使得觸發(fā)器發(fā)出攜帶有具體操作內(nèi)容的信息。通過對(duì)數(shù)據(jù)庫中針對(duì)數(shù)據(jù)表的創(chuàng)建、修改、或刪除等操作進(jìn)行監(jiān)聽,使得在數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后,自動(dòng)生成用于啟動(dòng)被重建或刪除的數(shù)據(jù)表的訪問權(quán)限繼承的請(qǐng)求。
此處還需要說明的是,本申請(qǐng)實(shí)施例中的數(shù)據(jù)庫,既可以包含通常意義上的事務(wù)型數(shù)據(jù)庫,如Oracle、SQL Server,也可以包含主題型的數(shù)據(jù)倉庫;既可以包含本地存儲(chǔ)型數(shù)據(jù)庫,也可以包含云數(shù)據(jù)庫。
例如,以阿里云的開放數(shù)據(jù)處理服務(wù)為例,說明如下一種可能的應(yīng)用場(chǎng)景:假設(shè)從淘寶的數(shù)據(jù)庫中獲取七月份淘寶網(wǎng)站中每一筆交易數(shù)據(jù),然后將交易數(shù)據(jù)加工整理后得到銷售事實(shí)表,包括訂單號(hào)、產(chǎn)品鍵、賣家鍵和買家鍵、銷售量和銷售時(shí)間;還得到產(chǎn)品維表、賣家維表和買家維表,分別通過產(chǎn)品鍵、賣家鍵和買家鍵與銷售事實(shí)表關(guān)聯(lián);將上述事實(shí)表和維表上傳至ODPS存儲(chǔ),假設(shè)被重建或刪除的是產(chǎn)品維表(以下記為數(shù)據(jù)表A)。用戶開通ODPS服務(wù)后向數(shù)據(jù)表A的擁有者申請(qǐng)?jiān)L問數(shù)據(jù)表A,在用戶對(duì)數(shù)據(jù)表A的申請(qǐng)通過后,采用設(shè)置數(shù)據(jù)表A內(nèi)容的方式允許該用戶對(duì)數(shù)據(jù)表A的 訪問權(quán)限。用戶可以通過ODPS客戶端發(fā)起查詢請(qǐng)求來訪問數(shù)據(jù)庫中的數(shù)據(jù)表A。當(dāng)數(shù)據(jù)庫中的原始數(shù)據(jù)表A被重建后,得到被重建的數(shù)據(jù)表A(以下記為新數(shù)據(jù)表A’),新數(shù)據(jù)表A’中關(guān)于所有用戶(包括上述用戶)的訪問權(quán)限信息也可能隨著重建操作而丟失。此時(shí),可以使數(shù)據(jù)表A的重建操作觸發(fā)生成一個(gè)權(quán)限繼承請(qǐng)求,來觸發(fā)新數(shù)據(jù)表A’繼承數(shù)據(jù)表A中關(guān)于所有用戶的訪問權(quán)限信息的操作。
步驟S204:可以通過權(quán)限服務(wù)器來解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息;
本申請(qǐng)上述步驟S204中,權(quán)限繼承請(qǐng)求可以由數(shù)據(jù)庫服務(wù)器按照預(yù)定格式發(fā)出,攜帶有針對(duì)數(shù)據(jù)表A的具體操作內(nèi)容,在確認(rèn)權(quán)限繼承請(qǐng)求中攜帶的操作內(nèi)容是重建數(shù)據(jù)表或刪除數(shù)據(jù)表時(shí),則從權(quán)限繼承請(qǐng)求中讀取被重建或刪除的數(shù)據(jù)表的表信息;在權(quán)限繼承請(qǐng)求中攜帶的操作內(nèi)容不是重建也不是刪除時(shí),則不執(zhí)行繼承數(shù)據(jù)表訪問權(quán)限的步驟。
可選地,上述表信息可以包括:數(shù)據(jù)表的名稱、數(shù)據(jù)表的創(chuàng)建時(shí)間和數(shù)據(jù)表的創(chuàng)建者等,在數(shù)據(jù)表被重建或刪除后,保證至少有一項(xiàng)表信息不發(fā)生變化即可。
仍舊以阿里云的開放數(shù)據(jù)處理服務(wù)為例,當(dāng)重建數(shù)據(jù)表A得到新數(shù)據(jù)表A’后,數(shù)據(jù)訪問請(qǐng)求中攜帶了新數(shù)據(jù)表A’的表信息,例如新數(shù)據(jù)表A’的名稱。權(quán)限服務(wù)器對(duì)權(quán)限繼承請(qǐng)求進(jìn)行解析,獲取權(quán)限繼承請(qǐng)求中包含的新數(shù)據(jù)表A’的表名稱。
步驟S206:可以通過權(quán)限服務(wù)器來實(shí)現(xiàn)根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限;
本申請(qǐng)上述步驟S206中,權(quán)限服務(wù)器中可以訪問預(yù)先存儲(chǔ)的訪問權(quán)限數(shù)據(jù)庫,訪問權(quán)限數(shù)據(jù)庫用于保存數(shù)據(jù)庫服務(wù)器中被觸發(fā)申請(qǐng)的數(shù)據(jù)表所預(yù)先設(shè)置的用戶權(quán)限,即在數(shù)據(jù)庫服務(wù)器中的任意一個(gè)數(shù)據(jù)表被用戶申請(qǐng)之后,就會(huì)將該數(shù)據(jù)表的表信息及對(duì)應(yīng)的用戶權(quán)限保存至訪問權(quán)限數(shù)據(jù)庫。
由此,一種可選方案中,訪問權(quán)限數(shù)據(jù)庫中創(chuàng)建并更新數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限的方式可以為:在用戶申請(qǐng)?jiān)L問數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)表之后,將被申請(qǐng)的數(shù)據(jù)表的表信息及該數(shù)據(jù)表已經(jīng)設(shè)置的訪問權(quán)限打包發(fā)送至訪問權(quán)限數(shù)據(jù)庫進(jìn)行保存。
基于上述匯集整理數(shù)據(jù)庫已經(jīng)保存的權(quán)限信息,當(dāng)權(quán)限服務(wù)器接收到被重建或刪除的數(shù)據(jù)表的表信息之后,會(huì)基于表信息從該訪問權(quán)限數(shù)據(jù)庫中進(jìn)行遍歷查詢,得到該表信息的所對(duì)應(yīng)的用戶權(quán)限。
仍舊以阿里云的開放數(shù)據(jù)處理服務(wù)為例,表A存儲(chǔ)于云數(shù)據(jù)庫中,將設(shè)置的每個(gè) 用戶的用戶權(quán)限記錄在訪問權(quán)限數(shù)據(jù)庫中,即在ODPS中用戶申請(qǐng)表A后,就將用戶對(duì)表A的用戶權(quán)限存儲(chǔ)在訪問權(quán)限數(shù)據(jù)庫中。當(dāng)數(shù)據(jù)表A被重建得到新數(shù)據(jù)表A’后,從權(quán)限繼承請(qǐng)求中解析出被重建或刪除的數(shù)據(jù)表的表信息,例如,新數(shù)據(jù)表A’的表名稱。在一種應(yīng)用場(chǎng)景中,由于表名稱在數(shù)據(jù)表重建的過程中不發(fā)生變化,則可以根據(jù)新數(shù)據(jù)表A’的表名稱,從訪問權(quán)限數(shù)據(jù)庫查詢記錄的新數(shù)據(jù)表A’的所有用戶權(quán)限??蛇x的,訪問權(quán)限數(shù)據(jù)庫可以存儲(chǔ)于權(quán)限服務(wù)器本地,也可以存儲(chǔ)于阿里云端。
步驟S208:可以通過權(quán)限服務(wù)器來實(shí)現(xiàn)將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
本申請(qǐng)上述步驟S208中,對(duì)被重建或刪除的數(shù)據(jù)表繼續(xù)重新賦權(quán),即,權(quán)限服務(wù)器將從訪問權(quán)限數(shù)據(jù)庫中查詢得到的被重建或刪除的數(shù)據(jù)表的用戶權(quán)限,返回至數(shù)據(jù)庫服務(wù)器中,使得被重建或刪除的數(shù)據(jù)表具有與被重建或刪除前的原始數(shù)據(jù)表相同的用戶權(quán)限記錄。
仍舊以阿里云的開放數(shù)據(jù)處理服務(wù)為例,將從訪問權(quán)限數(shù)據(jù)庫中查詢得到的新數(shù)據(jù)表A’的所有用戶權(quán)限發(fā)送至數(shù)據(jù)庫服務(wù)器中,例如阿里云數(shù)據(jù)庫服務(wù)器中,來實(shí)現(xiàn)利用查詢得到的新數(shù)據(jù)表A’的所有用戶權(quán)限,對(duì)新數(shù)據(jù)表A’進(jìn)行重新設(shè)置,使新數(shù)據(jù)表A’具有與數(shù)據(jù)表A相同的用戶權(quán)限設(shè)置的效果。當(dāng)用戶訪問新數(shù)據(jù)表A’時(shí),由于經(jīng)過上述操作,新數(shù)據(jù)表A’中更新或重設(shè)了用戶權(quán)限,則可以根據(jù)數(shù)據(jù)表A中記錄的用戶權(quán)限,對(duì)該用戶的訪問進(jìn)行控制。
由上可知,本申請(qǐng)上述實(shí)施例一提供的方案中,采用預(yù)存或備份數(shù)據(jù)庫中每一個(gè)數(shù)據(jù)表的用戶權(quán)限的方式,使得在數(shù)據(jù)庫中的數(shù)據(jù)表被重建或刪除后,即便被重建或刪除的數(shù)據(jù)表的用戶訪問權(quán)限丟失,也能實(shí)現(xiàn)通過在重建或刪除后觸發(fā)生成權(quán)限繼承請(qǐng)求的方式,在解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息后,從預(yù)存的每一個(gè)數(shù)據(jù)表的用戶權(quán)限中,查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限的目的;使得將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表,達(dá)到了使被重建或刪除的數(shù)據(jù)表中的用戶權(quán)限同步恢復(fù)的技術(shù)效果,進(jìn)而解決了由于數(shù)據(jù)倉庫中的表被刪除或重建后用戶權(quán)限丟失,而造成的重新對(duì)用戶進(jìn)行授權(quán)流程繁瑣且效率低的技術(shù)問題。最終,一方面,實(shí)現(xiàn)了將數(shù)據(jù)表的擁有者從數(shù)據(jù)表被重建、刪除操作后重新賦權(quán)的繁瑣工作中解放出來,極大的減少了數(shù)據(jù)表擁有者工作量;另一方面,也使得用戶在訪問被重建或刪除的數(shù)據(jù)表時(shí),不再需要重復(fù)申請(qǐng)權(quán)限,保證了良好的用戶體驗(yàn);又一方面,也實(shí)現(xiàn)了及時(shí)、高效的被重建或刪除的數(shù)據(jù)表的權(quán)限繼承,保證了數(shù)據(jù)表中數(shù)據(jù)的安全性。
本申請(qǐng)上述實(shí)施例提供的一種可選方案中,權(quán)限繼承請(qǐng)求中包括DDL事件,其中, 步驟S204:解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息的步驟還可以包括如下具體的實(shí)施步驟:
步驟S2042:可以通過權(quán)限服務(wù)器來實(shí)現(xiàn)解析DDL事件,得到數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表的表信息。
本申請(qǐng)上述步驟S2042中,數(shù)據(jù)庫中可能創(chuàng)建有觸發(fā)器,在創(chuàng)建觸發(fā)器時(shí)指定了觸發(fā)該觸發(fā)器的事件。在一種可選方式中,觸發(fā)器的觸發(fā)事件通常分為三類,分別是數(shù)據(jù)操縱語言(DML)事件、數(shù)據(jù)定義語言(DDL)事件和數(shù)據(jù)庫事件。其中,DDL事件對(duì)應(yīng)DDL觸發(fā)器,用于在對(duì)數(shù)據(jù)庫中的數(shù)據(jù)對(duì)象進(jìn)行修改時(shí)觸發(fā)。具體的,在數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表、重建數(shù)據(jù)表和刪除數(shù)據(jù)表時(shí),會(huì)觸發(fā)DDL事件。
基于上述觸發(fā)DDL事件的操作,當(dāng)權(quán)限服務(wù)器接收到包括DDL事件的權(quán)限繼承請(qǐng)求后,判斷觸發(fā)DDL事件的操作是否為重建數(shù)據(jù)表或刪除數(shù)據(jù)表的操作,在判斷為是的情況下,從DDL事件中讀取被重建或刪除的數(shù)據(jù)表的表信息。
仍舊以阿里云的開放數(shù)據(jù)處理服務(wù)為例,權(quán)限服務(wù)器訂閱ODPS中的DDL事件,并通過權(quán)限服務(wù)器對(duì)外提供的HTTP接口接收ODPS中的DDL事件。當(dāng)ODPS執(zhí)行對(duì)數(shù)據(jù)表A被重建或刪除時(shí),ODPS向權(quán)限服務(wù)器發(fā)出包含DDL事件的用于自動(dòng)繼承用戶權(quán)限的權(quán)限繼承請(qǐng)求,在權(quán)限服務(wù)器解析該權(quán)限繼承請(qǐng)求并解析DDL事件,得到DDL事件中包含的對(duì)數(shù)據(jù)表A的具體操作后,進(jìn)一步判斷出具體操作為對(duì)數(shù)據(jù)表A的重建或刪除操作時(shí),從權(quán)限繼承請(qǐng)求中讀取數(shù)據(jù)表A的表信息。此處需要說明的是,當(dāng)數(shù)據(jù)表A為新建的一個(gè)維表的情況下,則對(duì)于表A的用戶權(quán)限尚未設(shè)置,表A不需要自動(dòng)繼承用戶權(quán)限。
由上可知,本申請(qǐng)上述步驟S2042提供了一種獲取被重建或刪除的數(shù)據(jù)表的表信息的可選方案。采用解析包含DDL事件的權(quán)限繼承請(qǐng)求的方式,實(shí)現(xiàn)了從權(quán)限繼承請(qǐng)求讀取被重建或刪除的數(shù)據(jù)表的表信息。
本申請(qǐng)上述實(shí)施例提供的一種可選方案中,步驟S206:根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限,又可以包括如下具體的實(shí)施步驟:
步驟S2062:可以通過權(quán)限服務(wù)器來實(shí)現(xiàn)根據(jù)被重建或刪除的數(shù)據(jù)表的表信息判斷數(shù)據(jù)表是否為用戶之前申請(qǐng)過的數(shù)據(jù)表;
本申請(qǐng)上述步驟S2062中,可以通過給用戶之前申請(qǐng)過的數(shù)據(jù)表添加申請(qǐng)標(biāo)識(shí),來表征該數(shù)據(jù)表被用戶申請(qǐng)過;還可以通過將所有被用戶申請(qǐng)過的數(shù)據(jù)表的表信息進(jìn)行匯集,使得可以通過查詢表信息的方式來判斷。
步驟S2064:可以通過權(quán)限服務(wù)器來實(shí)現(xiàn)如果被重建或刪除的數(shù)據(jù)表為用戶之前申請(qǐng)過的數(shù)據(jù)表,則從本地關(guān)系數(shù)據(jù)庫中查詢得到用戶之前為數(shù)據(jù)表設(shè)置的歷史用戶權(quán)限;
本申請(qǐng)上述步驟S2064中,歷史用戶權(quán)限為歷史設(shè)置的用戶對(duì)數(shù)據(jù)表的訪問權(quán)限。本地關(guān)系數(shù)據(jù)庫可以為訪問權(quán)限數(shù)據(jù)庫,存儲(chǔ)于權(quán)限服務(wù)器本地??梢酝ㄟ^相應(yīng)的設(shè)置,使得用戶申請(qǐng)數(shù)據(jù)表的操作去觸發(fā)將設(shè)置的用戶對(duì)該數(shù)據(jù)表的權(quán)限存儲(chǔ)于訪問權(quán)限數(shù)據(jù)庫中,即訪問權(quán)限數(shù)據(jù)庫記錄了之前用戶申請(qǐng)的所有權(quán)限記錄。
步驟S2066:可以通過權(quán)限服務(wù)器來實(shí)現(xiàn)將用戶之前為數(shù)據(jù)表設(shè)置的歷史用戶權(quán)限賦值給被重建或刪除的數(shù)據(jù)表,得到為被重建或刪除的數(shù)據(jù)表重新賦權(quán)的用戶權(quán)限。
本申請(qǐng)上述步驟S2066中,在從訪問權(quán)限數(shù)據(jù)庫中查詢得到歷史用戶權(quán)限后,權(quán)限服務(wù)器將歷史用戶權(quán)限賦值給數(shù)據(jù)表,即權(quán)限服務(wù)器將查詢到的數(shù)據(jù)表的歷史用戶權(quán)限與該數(shù)據(jù)表關(guān)聯(lián),得到對(duì)被重建或刪除的數(shù)據(jù)表進(jìn)行重新賦權(quán)時(shí)需要使用的用戶權(quán)限。
由上可知,本申請(qǐng)上述步驟S2062至步驟S2066提供了一種獲取被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限,采用首先判斷被重建或刪除的數(shù)據(jù)表是否為用戶之前申請(qǐng)過的數(shù)據(jù)表的方式,在判斷出沒有用戶申請(qǐng)過該數(shù)據(jù)表時(shí)則不執(zhí)行權(quán)限繼承的操作;在判斷出有用戶申請(qǐng)過該數(shù)據(jù)表時(shí),則從預(yù)先存儲(chǔ)的訪問權(quán)限數(shù)據(jù)庫中進(jìn)行歷史用戶權(quán)限查詢,將查詢到的歷史用戶權(quán)限賦值給被重建或刪除的數(shù)據(jù)表,實(shí)現(xiàn)了獲得被重建或刪除的數(shù)據(jù)表對(duì)應(yīng)的用戶權(quán)限。
本申請(qǐng)上述實(shí)施例提供的一種可選方案中,在執(zhí)行步驟S206:根據(jù)數(shù)據(jù)表的表信息判斷數(shù)據(jù)表是否為用戶之前申請(qǐng)過的數(shù)據(jù)表之前,本申請(qǐng)實(shí)施例的數(shù)據(jù)庫的訪問權(quán)限處理方法還可以執(zhí)行如下實(shí)施步驟:
步驟S2052:如果數(shù)據(jù)庫中已經(jīng)保存的任意一個(gè)數(shù)據(jù)表被用戶申請(qǐng),且申請(qǐng)成功,則生成并存儲(chǔ)被用戶申請(qǐng)過的數(shù)據(jù)表的表信息集合;
其中,如果被重建或刪除的數(shù)據(jù)表的表信息在已經(jīng)存儲(chǔ)的用戶申請(qǐng)過的數(shù)據(jù)表的表信息集合中匹配成功,則確定被重建或刪除的數(shù)據(jù)表為用戶之前申請(qǐng)過的數(shù)據(jù)表。
本申請(qǐng)上述步驟S2052中,在數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被用戶申請(qǐng)成功后,可以將用戶對(duì)該表所具有的訪問權(quán)限、用戶標(biāo)識(shí)以及表信息進(jìn)行存儲(chǔ),通過至少一次用戶成功申請(qǐng)的操作,得到被用戶申請(qǐng)過的數(shù)據(jù)表的表信息的集合。上述用戶申請(qǐng)過的數(shù)據(jù)表的表信息的集合可以存儲(chǔ)于上述訪問權(quán)限數(shù)據(jù)庫中。
基于得到的用戶申請(qǐng)過的數(shù)據(jù)表的表信息的集合,判斷數(shù)據(jù)表是否為用戶之前申請(qǐng)過的數(shù)據(jù)表的一種可選的方式包括:根據(jù)獲取到的被重建或刪除的數(shù)據(jù)表的表信息,從用戶申請(qǐng)過的數(shù)據(jù)表的表信息的中,通過遍歷查詢的方式,判斷是否存在與被重建或刪除的數(shù)據(jù)表的表信息相一致的信息,在判斷為是的情況下,可以確定該被重建或刪除的數(shù)據(jù)表為被用戶之前申請(qǐng)過的數(shù)據(jù)表。
仍舊以阿里云的開放數(shù)據(jù)處理服務(wù)為例,當(dāng)用戶在ODPS中成功申請(qǐng)數(shù)據(jù)表A后,將數(shù)據(jù)表A的表信息、用戶標(biāo)識(shí)、以及上述用戶對(duì)數(shù)據(jù)表A的訪問權(quán)限存儲(chǔ)至訪問權(quán)限數(shù)據(jù)庫中。例如,當(dāng)數(shù)據(jù)表A被重建后,權(quán)限服務(wù)器接收通過在ODPS訂閱事件而接收到包含DDL事件的權(quán)限繼承請(qǐng)求,權(quán)限服務(wù)器解析出新數(shù)據(jù)表A’的表信息,并從訪問權(quán)限數(shù)據(jù)庫中記錄的表信息中遍歷查詢,在判斷出訪問權(quán)限數(shù)據(jù)庫中具有與新數(shù)據(jù)表A’的表信息相匹配的內(nèi)容時(shí),則可以確定數(shù)據(jù)表A為用戶之前申請(qǐng)過的數(shù)據(jù)表。
在另一種可能的應(yīng)用場(chǎng)景中,當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)表B被重建,得到新數(shù)據(jù)表B’時(shí),若用戶未申請(qǐng)過數(shù)據(jù)表B,則訪問權(quán)限數(shù)據(jù)庫中沒有記錄數(shù)據(jù)表B的歷史用戶權(quán)限。此時(shí),即便接收到ODPS發(fā)來的包含DDL事件的權(quán)限繼承請(qǐng)求,并解析出新數(shù)據(jù)表B’的表信息,也無法從訪問權(quán)限數(shù)據(jù)庫中記錄的表信息中查詢到與新數(shù)據(jù)表B’的表信息相匹配的內(nèi)容時(shí),則可以確定數(shù)據(jù)表B之前未被用戶申請(qǐng)過。
由上可知,本申請(qǐng)上述步驟S2052提供了一種預(yù)先存儲(chǔ)用戶申請(qǐng)過的數(shù)據(jù)表的表信息的方案,使得可以通過查詢比對(duì)的方式,判斷被重建或刪除的數(shù)據(jù)表是否在之前被用戶申請(qǐng)過,以方便讀取之前被用戶申請(qǐng)過的、如今被重建或刪除的數(shù)據(jù)表的歷史用戶權(quán)限。
本申請(qǐng)上述實(shí)施例提供的一種可選方案中,步驟S208:將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表,又可以包括如下具體的實(shí)施步驟:
步驟S2082:可以通過權(quán)限服務(wù)器來實(shí)現(xiàn)將被重建或刪除的數(shù)據(jù)表的表信息及獲取到的被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限進(jìn)行封裝,得到允許數(shù)據(jù)庫識(shí)別的權(quán)限重置語句;
本申請(qǐng)上述步驟S2082中,權(quán)限重置語句可以為賦予權(quán)限語句,授予用戶權(quán)限語句?;诓煌臄?shù)據(jù)庫,可能支持不同類型的權(quán)限重置語句。以SQL為例,可以通過grant語句來實(shí)現(xiàn)權(quán)限重置。權(quán)限服務(wù)器根據(jù)獲取到的被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限和表信息,生成權(quán)限重置語句。
步驟S2084:可以通過權(quán)限服務(wù)器來實(shí)現(xiàn)將權(quán)限重置語句返回至數(shù)據(jù)庫所在的服務(wù)器,使得用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
本申請(qǐng)上述步驟S2084中,權(quán)限重置語句的作用對(duì)象為被重建或刪除的數(shù)據(jù)表,因此權(quán)限服務(wù)器需要首先將權(quán)限重置語句發(fā)送至被重建或刪除的數(shù)據(jù)表所在的數(shù)據(jù)庫服務(wù)器;在數(shù)據(jù)庫服務(wù)器接收到權(quán)限重置語句后,對(duì)應(yīng)執(zhí)行權(quán)限重置語句,實(shí)現(xiàn)對(duì)被重建或刪除的數(shù)據(jù)表的重新賦權(quán)的操作。
由上可知,本申請(qǐng)上述步驟S2082至步驟S2084提供了一種對(duì)被重建或刪除的數(shù)據(jù)表重新賦權(quán)的方案,采用權(quán)限服務(wù)器將獲取到的權(quán)限信息、數(shù)據(jù)表的表信息按照數(shù)據(jù)庫能夠識(shí)別的方式,生成權(quán)限重置語句,并將權(quán)限重置語句發(fā)送至數(shù)據(jù)庫服務(wù)器,進(jìn)而在執(zhí)行了權(quán)限重置語句所對(duì)應(yīng)的功能后,實(shí)現(xiàn)了對(duì)被重建或刪除的數(shù)據(jù)表的重新賦權(quán)。
本申請(qǐng)上述實(shí)施例提供的一種可選方案中,在執(zhí)行步驟S202:接收用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求之前,本申請(qǐng)實(shí)施例的數(shù)據(jù)庫的訪問權(quán)限處理方法還可以執(zhí)行如下實(shí)施步驟:
步驟S201:可以通過數(shù)據(jù)庫服務(wù)器來實(shí)現(xiàn)在數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除之后,觸發(fā)系統(tǒng)自動(dòng)生成權(quán)限繼承請(qǐng)求。
本申請(qǐng)上述步驟S201中,在對(duì)數(shù)據(jù)庫中的數(shù)據(jù)表進(jìn)行操作時(shí)可以觸發(fā)數(shù)據(jù)庫中的觸發(fā)器,使得觸發(fā)器發(fā)出攜帶有具體操作內(nèi)容的信息。通過對(duì)數(shù)據(jù)庫中針對(duì)數(shù)據(jù)表的創(chuàng)建、修改、或刪除等操作進(jìn)行監(jiān)聽,使得在數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后,用于存儲(chǔ)數(shù)據(jù)庫的數(shù)據(jù)庫服務(wù)器發(fā)出用于啟動(dòng)被重建或刪除的數(shù)據(jù)表的訪問權(quán)限繼承的請(qǐng)求。
由上可知,本申請(qǐng)上述步驟S201提供了一種數(shù)據(jù)庫服務(wù)器生成權(quán)限繼承請(qǐng)求的可選方案,采用對(duì)數(shù)據(jù)庫中的數(shù)據(jù)表的操作進(jìn)行監(jiān)聽,實(shí)現(xiàn)在數(shù)據(jù)表被重建或刪除時(shí),觸發(fā)系統(tǒng)自動(dòng)生成權(quán)限繼承請(qǐng)求。
圖3是根據(jù)本申請(qǐng)實(shí)施例一的一種可選的數(shù)據(jù)庫的訪問權(quán)限處理方法的交互示意圖;下面就結(jié)合圖3,將本申請(qǐng)的方案應(yīng)用在具體系統(tǒng)中所實(shí)現(xiàn)的功能進(jìn)行詳細(xì)描述:
如圖3所示,數(shù)據(jù)庫服務(wù)器301包含多個(gè)數(shù)據(jù)庫,如圖3中所示的數(shù)據(jù)庫3011、數(shù)據(jù)庫3012和數(shù)據(jù)庫3013,數(shù)據(jù)庫服務(wù)器301中的任意一個(gè)數(shù)據(jù)庫中的數(shù)據(jù)表均有可能發(fā)生重建或刪除。
權(quán)限服務(wù)器302用于在接收到權(quán)限繼承請(qǐng)求后,解析時(shí)間,并在本地?cái)?shù)據(jù)庫中查詢到對(duì)應(yīng)的用戶權(quán)限后,重新組裝賦權(quán)語句,得到權(quán)限重置語句,然后將返回至數(shù)據(jù)庫服務(wù)器執(zhí)行。
本地?cái)?shù)據(jù)庫303可以為上述的訪問權(quán)限數(shù)據(jù)庫,用于存儲(chǔ)用戶之前申請(qǐng)過的所有數(shù)據(jù)表的用戶權(quán)限。
圖4是根據(jù)本申請(qǐng)實(shí)施例一的一種可選的數(shù)據(jù)庫的訪問權(quán)限處理方法的流程圖;下面就結(jié)合圖3和圖4,對(duì)本申請(qǐng)?jiān)谝环N可選的應(yīng)用場(chǎng)景中的方法流程,尤其是以重建數(shù)據(jù)表為例,權(quán)限服務(wù)器302所執(zhí)行的方法流程進(jìn)行詳細(xì)描述:
當(dāng)權(quán)限服務(wù)器通過對(duì)外提供的HTTP協(xié)議接口來接收權(quán)限繼承請(qǐng)求,以O(shè)DPS為例,只要在ODPS中訂閱事件,當(dāng)ODPS執(zhí)行DDL變更時(shí),就會(huì)發(fā)送事件通知權(quán)限服務(wù)器;在判斷權(quán)限繼承請(qǐng)求中包含DDL事件后,開始如下流程:
步驟A:對(duì)接收到的收權(quán)限繼承請(qǐng)求中攜帶的事件進(jìn)行分析;
具體的,在上述步驟A中,在接收到請(qǐng)求后,首先判斷請(qǐng)求中攜帶的事件進(jìn)行分析,判斷是否為DDL事件,
步驟B:解析事件,并判斷是否為重建表的DDL事件;
具體的,在上述步驟B中,對(duì)DDL事件進(jìn)行解析,判斷觸發(fā)DDL的事件是否為數(shù)據(jù)表重建的事件,在判斷為是的情況下,確定該DDL事件為重建表的DDL。進(jìn)一步的,在確定DDL事件為重建表的DDL事件后,從DDL事件中提取被重建的數(shù)據(jù)表的表信息;
步驟C:從本地?cái)?shù)據(jù)庫中查詢表權(quán)項(xiàng)相關(guān)信息;
具體的,在上述步驟C中,本地?cái)?shù)據(jù)庫中記錄有之前用戶申請(qǐng)的所有記錄。在解析判斷出重建表為之前用戶申請(qǐng)過的數(shù)據(jù)表時(shí),可以從本地關(guān)系數(shù)據(jù)庫中查詢?cè)摫碇坝脩羰跈?quán)的情況,得到該表對(duì)應(yīng)的用戶權(quán)限;
步驟D:重新執(zhí)行賦權(quán)語句;
具體的,在上述步驟D中,將該表之前設(shè)置的用戶權(quán)限按照數(shù)據(jù)庫服務(wù)器能夠識(shí)別的語句進(jìn)行封裝,得到權(quán)限重置語句,并將權(quán)限重置語句返回?cái)?shù)據(jù)庫服務(wù)器,使得數(shù)據(jù)庫服務(wù)器執(zhí)行權(quán)限重置語句進(jìn)行重新賦權(quán)。
在步驟B中判斷出非重建表的DDL事件時(shí),以及步驟D執(zhí)行完成后,一次賦權(quán)流程結(jié)束。
綜上所述,本申請(qǐng)實(shí)施例通過對(duì)外提供的http接口,接收DDL變更的事件,實(shí)現(xiàn)了保證數(shù)據(jù)倉庫表重建之后之前申請(qǐng)的表的權(quán)限能繼承下來,不影響用戶及生產(chǎn),達(dá)到了當(dāng)表被重建后,默認(rèn)之前的用戶會(huì)恢復(fù)之前的表權(quán)限,對(duì)用戶透明,也不需要重新申請(qǐng)的技術(shù)效果;同時(shí)表owner可以不用再關(guān)注該表下游依賴的作業(yè),減少了owner 工作量。
需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請(qǐng),某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請(qǐng)所必須的。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述的方法。
實(shí)施例2
根據(jù)本申請(qǐng)實(shí)施例,還提供了一種用于實(shí)施上述數(shù)據(jù)庫的訪問權(quán)限處理方法的數(shù)據(jù)庫的訪問權(quán)限處理裝置,本申請(qǐng)上述實(shí)施例所提供的裝置可以在計(jì)算機(jī)終端上運(yùn)行。
圖5是根據(jù)本申請(qǐng)實(shí)施例二的數(shù)據(jù)庫的訪問權(quán)限處理裝置的結(jié)構(gòu)示意圖;如圖5所示,該數(shù)據(jù)庫的訪問權(quán)限處理裝置包括:接收模塊502、解析模塊504、查詢模塊506以及賦權(quán)模塊508,其中:
接收模塊502,用于接收用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求,其中,權(quán)限繼承請(qǐng)求為數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后觸發(fā)生成的請(qǐng)求;
解析模塊504,用于解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息;
查詢模塊506,用于根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限;
賦權(quán)模塊508,用于將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
由上可知,本申請(qǐng)上述接收模塊502、解析模塊504、查詢模塊506以及賦權(quán)模塊508中,采用預(yù)存或備份數(shù)據(jù)庫中每一個(gè)數(shù)據(jù)表的用戶權(quán)限的方式,使得在數(shù)據(jù)庫中的數(shù)據(jù)表被重建或刪除后,即便被重建或刪除的數(shù)據(jù)表的用戶訪問權(quán)限丟失,也能通過在重建或刪除后觸發(fā)生成權(quán)限繼承請(qǐng)求的方式,在解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息后,從預(yù)存的每一個(gè)數(shù)據(jù)表的用戶權(quán)限中,查詢得到被重建 或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限的目的;使得將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表,達(dá)到了使被重建或刪除的數(shù)據(jù)表中的用戶權(quán)限同步恢復(fù)的技術(shù)效果,進(jìn)而解決了由于數(shù)據(jù)倉庫中的表被刪除或重建后用戶權(quán)限丟失,而造成的重新對(duì)用戶進(jìn)行授權(quán)流程繁瑣且效率低的技術(shù)問題。最終,一方面,實(shí)現(xiàn)了將數(shù)據(jù)表的擁有者從數(shù)據(jù)表被重建、刪除操作后重新賦權(quán)的繁瑣工作中解放出來,極大的減少了數(shù)據(jù)表擁有者工作量;另一方面,也使得用戶在訪問被重建或刪除的數(shù)據(jù)表時(shí),不再需要重復(fù)申請(qǐng)權(quán)限,保證了良好的用戶體驗(yàn);又一方面,也實(shí)現(xiàn)了及時(shí)、高效的被重建或刪除的數(shù)據(jù)表的權(quán)限繼承。
此處需要說明的是,上述接收模塊502、解析模塊504、查詢模塊506以及賦權(quán)模塊508,對(duì)應(yīng)于實(shí)施例一中的步驟S202至步驟S208,四個(gè)模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端10中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)。
可選地,圖6是根據(jù)本申請(qǐng)實(shí)施例二的一種可選的解析模塊的結(jié)構(gòu)示意圖;如圖6所示,當(dāng)權(quán)限繼承請(qǐng)求中包括DDL事件時(shí),根據(jù)本申請(qǐng)實(shí)施例的解析模塊504包括:解析單元602,其中:
解析單元602,用于解析DDL事件,得到數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表的表信息。
由上可知,本申請(qǐng)上述解析單元602提供了一種獲取被重建或刪除的數(shù)據(jù)表的表信息的可選方案。采用解析包含DDL事件的權(quán)限繼承請(qǐng)求的方式,實(shí)現(xiàn)了從權(quán)限繼承請(qǐng)求讀取被重建或刪除的數(shù)據(jù)表的表信息。
此處需要說明的是,上述解析單元602,對(duì)應(yīng)于實(shí)施例一中的步驟S2042,該模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端10中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)。
可選地,圖7是根據(jù)本申請(qǐng)實(shí)施例二的一種可選的查詢模塊的結(jié)構(gòu)示意圖;如圖7所示,根據(jù)本申請(qǐng)實(shí)施例的查詢模塊506包括:判斷單元702、查詢單元704以及賦值單元706,其中:
判斷單元702,用于根據(jù)被重建或刪除的數(shù)據(jù)表的表信息判斷數(shù)據(jù)表是否為用戶之前申請(qǐng)過的數(shù)據(jù)表;
查詢單元704,用于如果被重建或刪除的數(shù)據(jù)表為用戶之前申請(qǐng)過的數(shù)據(jù)表,則 從本地關(guān)系數(shù)據(jù)庫中查詢得到用戶之前為數(shù)據(jù)表設(shè)置的歷史用戶權(quán)限;
賦值單元706,用于將用戶之前為數(shù)據(jù)表設(shè)置的歷史用戶權(quán)限賦值給被重建或刪除的數(shù)據(jù)表,得到為被重建或刪除的數(shù)據(jù)表重新賦權(quán)的用戶權(quán)限。
由上可知,本申請(qǐng)上述判斷單元702、查詢單元704以及賦值單元706提供了一種獲取被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限,采用首先判斷被重建或刪除的數(shù)據(jù)表是否為用戶之前申請(qǐng)過的數(shù)據(jù)表的方式,在判斷出沒有用戶申請(qǐng)過該數(shù)據(jù)表時(shí)則不執(zhí)行權(quán)限繼承的操作;在判斷出有用戶申請(qǐng)過該數(shù)據(jù)表時(shí),則從預(yù)先存儲(chǔ)的訪問權(quán)限數(shù)據(jù)庫中進(jìn)行歷史用戶權(quán)限查詢,將查詢到的歷史用戶權(quán)限賦值給被重建或刪除的數(shù)據(jù)表,實(shí)現(xiàn)了獲得被重建或刪除的數(shù)據(jù)表對(duì)應(yīng)的用戶權(quán)限。
此處需要說明的是,上述判斷單元702、查詢單元704以及賦值單元706,對(duì)應(yīng)于實(shí)施例一中的步驟S2062至步驟S2066,三個(gè)模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端10中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)。
可選地,圖8是根據(jù)本申請(qǐng)實(shí)施例二的一種可選的數(shù)據(jù)庫的訪問權(quán)限處理裝置的結(jié)構(gòu)示意圖;如圖8所示,根據(jù)本申請(qǐng)實(shí)施例的數(shù)據(jù)庫的訪問權(quán)限處理裝置還包括:存儲(chǔ)模塊802,其中:
存儲(chǔ)模塊802,用于如果數(shù)據(jù)庫中已經(jīng)保存任意一個(gè)數(shù)據(jù)表被用戶申請(qǐng),且申請(qǐng)成功,則生成并存儲(chǔ)被用戶申請(qǐng)過的數(shù)據(jù)表的表信息集合;其中,如果被重建或刪除的數(shù)據(jù)表的表信息在已經(jīng)存儲(chǔ)的用戶申請(qǐng)過的數(shù)據(jù)表的表信息集合中匹配成功,則確定被重建或刪除的數(shù)據(jù)表為用戶之前申請(qǐng)過的數(shù)據(jù)表。
由上可知,本申請(qǐng)上述存儲(chǔ)模塊802提供了一種預(yù)先存儲(chǔ)用戶申請(qǐng)過的數(shù)據(jù)表的表信息的方案,使得可以通過查詢比對(duì)的方式,判斷被重建或刪除的數(shù)據(jù)表是否在之前被用戶申請(qǐng)過,以方便讀取之前被用戶申請(qǐng)過的、如今被重建或刪除的數(shù)據(jù)表的歷史用戶權(quán)限。
此處需要說明的是,上述存儲(chǔ)模塊802,對(duì)應(yīng)于實(shí)施例一中的步驟S2052,該模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端10中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)。
可選地,圖9是根據(jù)本申請(qǐng)實(shí)施例二的一種可選的賦權(quán)模塊的結(jié)構(gòu)示意圖;如圖9所示,根據(jù)本申請(qǐng)實(shí)施例的賦權(quán)模塊508包括:封裝單元902以及賦權(quán)單元904,其 中:
封裝單元902,用于將被重建或刪除的數(shù)據(jù)表的表信息及獲取到的被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限進(jìn)行封裝,得到允許數(shù)據(jù)庫識(shí)別的權(quán)限重置語句;
賦權(quán)單元904,用于將權(quán)限重置語句返回至數(shù)據(jù)庫所在的服務(wù)器,使得用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
由上可知,本申請(qǐng)上述封裝單元902以及賦權(quán)單元904提供了一種對(duì)被重建或刪除的數(shù)據(jù)表重新賦權(quán)的方案,采用權(quán)限服務(wù)器將獲取到的權(quán)限信息、數(shù)據(jù)表的表信息按照數(shù)據(jù)庫能夠識(shí)別的方式,生成權(quán)限重置語句,并將權(quán)限重置語句發(fā)送至數(shù)據(jù)庫服務(wù)器,進(jìn)而在執(zhí)行了權(quán)限重置語句所對(duì)應(yīng)的功能后,實(shí)現(xiàn)了對(duì)被重建或刪除的數(shù)據(jù)表的重新賦權(quán)。
此處需要說明的是,上述封裝單元902以及賦權(quán)單元904,對(duì)應(yīng)于實(shí)施例一中的步驟S2082至步驟S2084,兩個(gè)模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端10中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)。
可選地,圖10是根據(jù)本申請(qǐng)實(shí)施例二的另一種可選的數(shù)據(jù)庫的訪問權(quán)限處理裝置的結(jié)構(gòu)示意圖;如圖10所示,根據(jù)本申請(qǐng)實(shí)施例的數(shù)據(jù)庫的訪問權(quán)限處理裝置還包括:觸發(fā)模塊1002,其中:
觸發(fā)模塊1002,用于在數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除之后,觸發(fā)系統(tǒng)自動(dòng)生成權(quán)限繼承請(qǐng)求。
由上可知,本申請(qǐng)上述觸發(fā)模塊1002提供了一種數(shù)據(jù)庫服務(wù)器生成權(quán)限繼承請(qǐng)求的可選方案,采用對(duì)數(shù)據(jù)庫中的數(shù)據(jù)表的操作進(jìn)行監(jiān)聽,實(shí)現(xiàn)在數(shù)據(jù)表被重建或刪除時(shí),觸發(fā)系統(tǒng)自動(dòng)生成權(quán)限繼承請(qǐng)求。
此處需要說明的是,上述觸發(fā)模塊1002,對(duì)應(yīng)于實(shí)施例一中的步驟S201,該模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例一所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以運(yùn)行在實(shí)施例一提供的計(jì)算機(jī)終端10中,可以通過軟件實(shí)現(xiàn),也可以通過硬件實(shí)現(xiàn)。
本申請(qǐng)上述實(shí)施例二所提供的優(yōu)選實(shí)施方案與實(shí)施例一所提供的方法實(shí)施例的可選方案以及應(yīng)用場(chǎng)景實(shí)施過程相同,但不限于實(shí)施例一所提供的方案。
實(shí)施例3
根據(jù)本申請(qǐng)實(shí)施例,還提供了一種數(shù)據(jù)庫的訪問權(quán)限處理系統(tǒng),圖11是根據(jù)本申請(qǐng)實(shí)施例三的數(shù)據(jù)庫的訪問權(quán)限處理系統(tǒng)的結(jié)構(gòu)示意圖。
如圖11所示,該數(shù)據(jù)庫的訪問權(quán)限處理系統(tǒng)包括:數(shù)據(jù)庫服務(wù)器111以及權(quán)限處理系統(tǒng)113,其中:
數(shù)據(jù)庫服務(wù)器111,用于保存數(shù)據(jù)庫,在數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后,觸發(fā)生成用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求;
權(quán)限處理系統(tǒng)113,用于接收并解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息,在根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限之后,將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
具體的,數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表都可以具有預(yù)先設(shè)置的訪問權(quán)限屬性,其中,訪問權(quán)限屬性的可以包括如下任意一種或多種權(quán)限:讀權(quán)限、寫權(quán)限、刪除權(quán)限或修改權(quán)限等。重建、刪除為對(duì)數(shù)據(jù)庫中包含的數(shù)據(jù)表進(jìn)行的修改操作,在進(jìn)行數(shù)據(jù)表的重建或刪除后,數(shù)據(jù)庫中該數(shù)據(jù)表之前被設(shè)置的訪問權(quán)限可能丟失,使得用戶下一次對(duì)被修改或刪除的數(shù)據(jù)表的訪問遭到拒絕,影響用戶的正常使用。
具體的,數(shù)據(jù)庫服務(wù)器111與圖1所示的計(jì)算機(jī)終端10具有通信關(guān)系,在對(duì)數(shù)據(jù)庫中的數(shù)據(jù)表進(jìn)行操作時(shí)可以觸發(fā)數(shù)據(jù)庫中的觸發(fā)器,使得觸發(fā)器發(fā)出攜帶有具體操作內(nèi)容的信息。通過對(duì)數(shù)據(jù)庫中針對(duì)數(shù)據(jù)表的創(chuàng)建、修改、或刪除等操作進(jìn)行監(jiān)聽,使得在數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后,自動(dòng)生成用于啟動(dòng)被重建或刪除的數(shù)據(jù)表的訪問權(quán)限繼承的請(qǐng)求。
具體的,在權(quán)限處理系統(tǒng)113確認(rèn)權(quán)限繼承請(qǐng)求中攜帶的操作內(nèi)容是重建數(shù)據(jù)表或刪除數(shù)據(jù)表時(shí),則從權(quán)限繼承請(qǐng)求中讀取被重建或刪除的數(shù)據(jù)表的表信息;在權(quán)限繼承請(qǐng)求中攜帶的操作內(nèi)容不是重建也不是刪除時(shí),則不執(zhí)行繼承數(shù)據(jù)表訪問權(quán)限的步驟。權(quán)限處理系統(tǒng)113通過訪問預(yù)先存儲(chǔ)的用戶權(quán)限數(shù)據(jù),會(huì)基于被重建或刪除的數(shù)據(jù)表的表信息從預(yù)先存儲(chǔ)的用戶權(quán)限數(shù)據(jù)中進(jìn)行遍歷查詢,得到該表信息的所對(duì)應(yīng)的用戶權(quán)限。
具體的,權(quán)限處理系統(tǒng)113將被重建或刪除的數(shù)據(jù)表的表信息及獲取到的被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限進(jìn)行封裝,得到允許數(shù)據(jù)庫識(shí)別的權(quán)限重置語句;將權(quán)限重置語句返回至數(shù)據(jù)庫所在的服務(wù)器,使得用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
此處需要說明的是,在一種可選的應(yīng)用場(chǎng)景下,結(jié)合圖3與圖11,本申請(qǐng)實(shí)施例中圖11所示的權(quán)限處理系統(tǒng)113可以包括圖3所示的權(quán)限服務(wù)器302和本地?cái)?shù)據(jù)庫 303。
由上可知,本申請(qǐng)上述實(shí)施例三提供的方案中,采用預(yù)存或備份數(shù)據(jù)庫中每一個(gè)數(shù)據(jù)表的用戶權(quán)限的方式,使得在數(shù)據(jù)庫中的數(shù)據(jù)表被重建或刪除后,即便被重建或刪除的數(shù)據(jù)表的用戶訪問權(quán)限丟失,也能通過在重建或刪除后觸發(fā)生成權(quán)限繼承請(qǐng)求的方式,在解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息后,從預(yù)存的每一個(gè)數(shù)據(jù)表的用戶權(quán)限中,查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限的目的;使得將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表,達(dá)到了使被重建或刪除的數(shù)據(jù)表中的用戶權(quán)限同步恢復(fù)的技術(shù)效果,進(jìn)而解決了由于數(shù)據(jù)倉庫中的表被刪除或重建后用戶權(quán)限丟失,而造成的重新對(duì)用戶進(jìn)行授權(quán)流程繁瑣且效率低的技術(shù)問題。最終,一方面,實(shí)現(xiàn)了將數(shù)據(jù)表的擁有者從數(shù)據(jù)表被重建、刪除操作后重新賦權(quán)的繁瑣工作中解放出來,極大的減少了數(shù)據(jù)表擁有者工作量;另一方面,也使得用戶在訪問被重建或刪除的數(shù)據(jù)表時(shí),不再需要重復(fù)申請(qǐng)權(quán)限,保證了良好的用戶體驗(yàn);又一方面,也實(shí)現(xiàn)了及時(shí)、高效的被重建或刪除的數(shù)據(jù)表的權(quán)限繼承。
本申請(qǐng)上述實(shí)施例三所提供的優(yōu)選實(shí)施方案與實(shí)施例一所提供的可選方案以及應(yīng)用場(chǎng)景實(shí)施過程相同,但不限于實(shí)施例一所提供的方案。
實(shí)施例4
本申請(qǐng)的實(shí)施例可以提供一種計(jì)算機(jī)終端,該計(jì)算機(jī)終端可以是計(jì)算機(jī)終端群中的任意一個(gè)計(jì)算機(jī)終端設(shè)備??蛇x地,在本實(shí)施例中,上述計(jì)算機(jī)終端也可以替換為移動(dòng)終端等終端設(shè)備。
可選地,在本實(shí)施例中,上述計(jì)算機(jī)終端可以位于計(jì)算機(jī)網(wǎng)絡(luò)的多個(gè)網(wǎng)絡(luò)設(shè)備中的至少一個(gè)網(wǎng)絡(luò)設(shè)備。
在本實(shí)施例中,上述計(jì)算機(jī)終端可以執(zhí)行應(yīng)用程序的漏洞檢測(cè)方法中以下步驟的程序代碼:接收用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求,其中,權(quán)限繼承請(qǐng)求為數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后觸發(fā)生成的請(qǐng)求;解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息;根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限;將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
可選地,圖12是根據(jù)本申請(qǐng)實(shí)施例的一種計(jì)算機(jī)終端的結(jié)構(gòu)框圖。如圖12所示,該計(jì)算機(jī)終端A可以包括:一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器、存儲(chǔ)器、以及傳輸裝置。
其中,存儲(chǔ)器可用于存儲(chǔ)軟件程序以及模塊,如本申請(qǐng)實(shí)施例中的安全漏洞檢測(cè) 方法和裝置對(duì)應(yīng)的程序指令/模塊,處理器通過運(yùn)行存儲(chǔ)在存儲(chǔ)器內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的系統(tǒng)漏洞攻擊的檢測(cè)方法。存儲(chǔ)器可包括高速隨機(jī)存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器可進(jìn)一步包括相對(duì)于處理器遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至終端A。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
處理器可以通過傳輸裝置調(diào)用存儲(chǔ)器存儲(chǔ)的信息及應(yīng)用程序,以執(zhí)行下述步驟:接收用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求,其中,權(quán)限繼承請(qǐng)求為數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后觸發(fā)生成的請(qǐng)求;解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息;根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限;將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:解析DDL事件,得到數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表的表信息。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:根據(jù)被重建或刪除的數(shù)據(jù)表的表信息判斷數(shù)據(jù)表是否為用戶之前申請(qǐng)過的數(shù)據(jù)表;如果被重建或刪除的數(shù)據(jù)表為用戶之前申請(qǐng)過的數(shù)據(jù)表,則從本地關(guān)系數(shù)據(jù)庫中查詢得到用戶之前為數(shù)據(jù)表設(shè)置的歷史用戶權(quán)限;將用戶之前為數(shù)據(jù)表設(shè)置的歷史用戶權(quán)限賦值給被重建或刪除的數(shù)據(jù)表,得到為被重建或刪除的數(shù)據(jù)表重新賦權(quán)的用戶權(quán)限。。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:如果數(shù)據(jù)庫中已經(jīng)保存任意一個(gè)數(shù)據(jù)表被用戶申請(qǐng),且申請(qǐng)成功,則生成并存儲(chǔ)被用戶申請(qǐng)過的數(shù)據(jù)表的表信息集合;其中,如果被重建或刪除的數(shù)據(jù)表的表信息在已經(jīng)存儲(chǔ)的用戶申請(qǐng)過的數(shù)據(jù)表的表信息集合中匹配成功,則確定被重建或刪除的數(shù)據(jù)表為用戶之前申請(qǐng)過的數(shù)據(jù)表。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:將被重建或刪除的數(shù)據(jù)表的表信息及獲取到的被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限進(jìn)行封裝,得到允許數(shù)據(jù)庫識(shí)別的權(quán)限重置語句;將權(quán)限重置語句返回至數(shù)據(jù)庫所在的服務(wù)器,使得用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
可選的,上述處理器還可以執(zhí)行如下步驟的程序代碼:在數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除之后,觸發(fā)系統(tǒng)自動(dòng)生成權(quán)限繼承請(qǐng)求。
采用本申請(qǐng)實(shí)施例,采用預(yù)存或備份數(shù)據(jù)庫中每一個(gè)數(shù)據(jù)表的用戶權(quán)限的方式,使得在數(shù)據(jù)庫中的數(shù)據(jù)表被重建或刪除后,即便被重建或刪除的數(shù)據(jù)表的用戶訪問權(quán) 限丟失,也能通過在重建或刪除后觸發(fā)生成權(quán)限繼承請(qǐng)求的方式,在解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息后,從預(yù)存的每一個(gè)數(shù)據(jù)表的用戶權(quán)限中,查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限的目的;使得將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表,達(dá)到了使被重建或刪除的數(shù)據(jù)表中的用戶權(quán)限同步恢復(fù)的技術(shù)效果,進(jìn)而解決了由于數(shù)據(jù)倉庫中的表被刪除或重建后用戶權(quán)限丟失,而造成的重新對(duì)用戶進(jìn)行授權(quán)流程繁瑣且效率低的技術(shù)問題。最終,一方面,實(shí)現(xiàn)了將數(shù)據(jù)表的擁有者從數(shù)據(jù)表被重建、刪除操作后重新賦權(quán)的繁瑣工作中解放出來,極大的減少了數(shù)據(jù)表擁有者工作量;另一方面,也使得用戶在訪問被重建或刪除的數(shù)據(jù)表時(shí),不再需要重復(fù)申請(qǐng)權(quán)限,保證了良好的用戶體驗(yàn);又一方面,也實(shí)現(xiàn)了及時(shí)、高效的被重建或刪除的數(shù)據(jù)表的權(quán)限繼承。
本領(lǐng)域普通技術(shù)人員可以理解,圖12所示的結(jié)構(gòu)僅為示意,計(jì)算機(jī)終端也可以是智能手機(jī)(如Android手機(jī)、iOS手機(jī)等)、平板電腦、掌聲電腦以及移動(dòng)互聯(lián)網(wǎng)設(shè)備(Mobile Internet Devices,MID)、PAD等終端設(shè)備。圖12其并不對(duì)上述電子裝置的結(jié)構(gòu)造成限定。例如,計(jì)算機(jī)終端A還可包括比圖12中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖12所示不同的配置。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設(shè)備相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤、只讀存儲(chǔ)器(Read-Only Memory,ROM)、隨機(jī)存取器(Random Access Memory,RAM)、磁盤或光盤等。
實(shí)施例5
本申請(qǐng)的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)??蛇x地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以用于保存上述實(shí)施例一所提供的數(shù)據(jù)庫的訪問權(quán)限處理方法所執(zhí)行的程序代碼。
可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以位于計(jì)算機(jī)網(wǎng)絡(luò)中計(jì)算機(jī)終端群中的任意一個(gè)計(jì)算機(jī)終端中,或者位于移動(dòng)終端群中的任意一個(gè)移動(dòng)終端中。
可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:接收用于自動(dòng)繼承訪問權(quán)限的權(quán)限繼承請(qǐng)求,其中,權(quán)限繼承請(qǐng)求為數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除后觸發(fā)生成的請(qǐng)求;解析權(quán)限繼承請(qǐng)求,獲取被重建或刪除的數(shù)據(jù)表的表信息;根據(jù)被重建或刪除的數(shù)據(jù)表的表信息查詢得到被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限;將用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:解析DDL事件,得到數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表的表信息。
可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:根據(jù)被重建或刪除的數(shù)據(jù)表的表信息判斷數(shù)據(jù)表是否為用戶之前申請(qǐng)過的數(shù)據(jù)表;如果被重建或刪除的數(shù)據(jù)表為用戶之前申請(qǐng)過的數(shù)據(jù)表,則從本地關(guān)系數(shù)據(jù)庫中查詢得到用戶之前為數(shù)據(jù)表設(shè)置的歷史用戶權(quán)限;將用戶之前為數(shù)據(jù)表設(shè)置的歷史用戶權(quán)限賦值給被重建或刪除的數(shù)據(jù)表,得到為被重建或刪除的數(shù)據(jù)表重新賦權(quán)的用戶權(quán)限。。
可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:如果數(shù)據(jù)庫中已經(jīng)保存任意一個(gè)數(shù)據(jù)表被用戶申請(qǐng),且申請(qǐng)成功,則生成并存儲(chǔ)被用戶申請(qǐng)過的數(shù)據(jù)表的表信息集合;其中,如果被重建或刪除的數(shù)據(jù)表的表信息在已經(jīng)存儲(chǔ)的用戶申請(qǐng)過的數(shù)據(jù)表的表信息集合中匹配成功,則確定被重建或刪除的數(shù)據(jù)表為用戶之前申請(qǐng)過的數(shù)據(jù)表。
可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:將被重建或刪除的數(shù)據(jù)表的表信息及獲取到的被重建或刪除的數(shù)據(jù)表所對(duì)應(yīng)的用戶權(quán)限進(jìn)行封裝,得到允許數(shù)據(jù)庫識(shí)別的權(quán)限重置語句;將權(quán)限重置語句返回至數(shù)據(jù)庫所在的服務(wù)器,使得用戶權(quán)限重新賦權(quán)給數(shù)據(jù)庫中被重建或刪除的數(shù)據(jù)表。
可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:在數(shù)據(jù)庫中的任意一個(gè)數(shù)據(jù)表被重建或刪除之后,觸發(fā)系統(tǒng)自動(dòng)生成權(quán)限繼承請(qǐng)求。
上述本申請(qǐng)實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本申請(qǐng)的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成 的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本申請(qǐng)的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請(qǐng)?jiān)淼那疤嵯?,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本申請(qǐng)的保護(hù)范圍。