本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,更為具體而言,涉及文件生成方法及裝置和數(shù)據(jù)分析方法及裝置。
背景技術(shù):
聯(lián)機(jī)分析處理(on-lineanalyticalprocessing,olap)是數(shù)據(jù)倉庫系統(tǒng)的主要應(yīng)用,支持復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢結(jié)果。在大數(shù)據(jù)分析的場(chǎng)景下,olap是數(shù)據(jù)分析的重要途徑之一。
在olap的使用場(chǎng)景中,支持對(duì)資源進(jìn)行權(quán)限限定,以保證信息的安全。然而,目前olap中用以獲取用戶權(quán)限的schema(模式)文件是靜態(tài)文件(對(duì)于所有的用戶而言都是一樣的),由此向用戶提供的權(quán)限約束也是相對(duì)靜態(tài)的,無法為不同用戶進(jìn)行定制化的權(quán)限約束,從而降低了用戶體驗(yàn)度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施方式提供了文件生成方法及裝置和數(shù)據(jù)分析方法及裝置,用以解決現(xiàn)有技術(shù)中無法為不同用戶進(jìn)行定制化的權(quán)限約束,從而降低了用戶體驗(yàn)度的問題。
第一方面,本發(fā)明實(shí)施方式提供了一種文件生成方法。
具體地,所述方法包括:
獲取文件模板;
基于用戶標(biāo)識(shí)符確定用戶權(quán)限;
根據(jù)所述文件模板和所述用戶權(quán)限生成文件。
由于在本發(fā)明中,通過用戶標(biāo)識(shí)符來確定文件中的用戶權(quán)限,因此可以定向生成定制化的文件,以實(shí)現(xiàn)個(gè)性化的權(quán)限約束,從而提高用戶體驗(yàn)度。
結(jié)合第一方面,在本發(fā)明的一些實(shí)現(xiàn)方式中,所述基于用戶標(biāo)識(shí)符確定用戶權(quán)限包括:
根據(jù)所述用戶標(biāo)識(shí)符獲取權(quán)限模型;
根據(jù)所述權(quán)限模型確定所述用戶權(quán)限。
結(jié)合第一方面,在本發(fā)明的一些實(shí)現(xiàn)方式中,所述根據(jù)所述文件模板和所述用戶權(quán)限生成文件包括:
從所述文件模板中識(shí)別出與所述用戶權(quán)限的權(quán)限名稱匹配的標(biāo)簽?zāi)0澹?/p>
判斷所述標(biāo)簽?zāi)0宓臄?shù)量是否等于所述用戶權(quán)限中權(quán)限值集合的元素?cái)?shù)量;
若所述標(biāo)簽?zāi)0宓臄?shù)量等于所述元素?cái)?shù)量,則在所述文件模板中,利用所述權(quán)限值集合中不同的元素,分別對(duì)不同的所述標(biāo)簽?zāi)0暹M(jìn)行占位符替換處理。
第二方面,本發(fā)明實(shí)施方式提供了一種數(shù)據(jù)分析方法。
具體地,所述方法包括:
基于數(shù)據(jù)分析請(qǐng)求加載根據(jù)上述任一項(xiàng)文件生成方法生成的文件;
從所述文件中獲取用戶權(quán)限;
根據(jù)所述數(shù)據(jù)分析請(qǐng)求和所述用戶權(quán)限執(zhí)行數(shù)據(jù)分析處理。
結(jié)合第二方面,在本發(fā)明的一些實(shí)現(xiàn)方式中,所述根據(jù)所述數(shù)據(jù)分析請(qǐng)求和所述用戶權(quán)限執(zhí)行數(shù)據(jù)分析處理包括:
根據(jù)所述數(shù)據(jù)分析請(qǐng)求生成數(shù)據(jù)庫查詢請(qǐng)求;
利用所述用戶權(quán)限對(duì)所述數(shù)據(jù)庫查詢請(qǐng)求進(jìn)行過濾;
基于經(jīng)過濾后的數(shù)據(jù)庫查詢請(qǐng)求從數(shù)據(jù)庫中讀取數(shù)據(jù);
對(duì)所述數(shù)據(jù)執(zhí)行分析處理。
由于在本發(fā)明中,在查詢數(shù)據(jù)庫之前執(zhí)行數(shù)據(jù)過濾處理,因此可以減小對(duì)數(shù)據(jù)庫的壓力并且還可以提高權(quán)限控制的覆蓋率。
第三方面,本發(fā)明實(shí)施方式提供了一種文件生成裝置。
具體地,所述裝置包括:
獲取模塊,用于獲取文件模板;
確定模塊,用于基于用戶標(biāo)識(shí)符確定用戶權(quán)限;
生成模塊,用于根據(jù)所述文件模板和所述用戶權(quán)限生成文件。
由于在本發(fā)明中,通過用戶標(biāo)識(shí)符來確定文件中的用戶權(quán)限,因此可以定向生成定制化的文件,以實(shí)現(xiàn)個(gè)性化的權(quán)限約束,從而提高用戶體驗(yàn)度。
結(jié)合第三方面,在本發(fā)明的一些實(shí)現(xiàn)方式中,所述確定模塊包括:
獲取單元,用于根據(jù)所述用戶標(biāo)識(shí)符獲取權(quán)限模型;
確定單元,用于根據(jù)所述權(quán)限模型確定所述用戶權(quán)限。
結(jié)合第三方面,在本發(fā)明的一些實(shí)現(xiàn)方式中,所述生成模塊包括:
識(shí)別單元,用于從所述文件模板中識(shí)別出與所述用戶權(quán)限的權(quán)限名稱匹配的標(biāo)簽?zāi)0澹?/p>
判斷單元,用于判斷所述標(biāo)簽?zāi)0宓臄?shù)量是否等于所述用戶權(quán)限中權(quán)限值集合的元素?cái)?shù)量;
替換單元,用于在所述標(biāo)簽?zāi)0宓臄?shù)量等于所述元素?cái)?shù)量的情形下,在所述文件模板中,利用所述權(quán)限值集合中不同的元素,分別對(duì)不同的所述標(biāo)簽?zāi)0暹M(jìn)行占位符替換處理。
第四方面,本發(fā)明實(shí)施方式提供了一種數(shù)據(jù)分析裝置。
具體地,所述裝置包括:
加載模塊,用于基于數(shù)據(jù)分析請(qǐng)求加載根據(jù)上述任一項(xiàng)文件生成方法生成的文件;
獲取模塊,用于從所述文件中獲取用戶權(quán)限;
處理模塊,用于根據(jù)所述數(shù)據(jù)分析請(qǐng)求和所述用戶權(quán)限執(zhí)行數(shù)據(jù)分析處理。
結(jié)合第四方面,在本發(fā)明的一些實(shí)現(xiàn)方式中,所述處理模塊包括:
生成單元,用于根據(jù)所述數(shù)據(jù)分析請(qǐng)求生成數(shù)據(jù)庫查詢請(qǐng)求;
過濾單元,用于利用所述用戶權(quán)限對(duì)所述數(shù)據(jù)庫查詢請(qǐng)求進(jìn)行過濾;
讀取單元,用于基于經(jīng)過濾后的數(shù)據(jù)庫查詢請(qǐng)求從數(shù)據(jù)庫中讀取數(shù)據(jù);
處理單元,用于對(duì)所述數(shù)據(jù)執(zhí)行分析處理。
由于在本發(fā)明中,在查詢數(shù)據(jù)庫之前執(zhí)行數(shù)據(jù)過濾處理,因此可以減小對(duì)數(shù)據(jù)庫的壓力并且還可以提高權(quán)限控制的覆蓋率。
本發(fā)明的這些方面或其他方面在以下具體實(shí)施方式的描述中會(huì)更加簡(jiǎn)明易懂。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施方式中的技術(shù)方案,下面將對(duì)實(shí)施方式描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施方式,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是根據(jù)本發(fā)明方法實(shí)施方式1的文件生成方法的流程圖;
圖2示出了圖1所示的處理s12的一種實(shí)施方式;
圖3示出了rbac(role-basedaccesscontrol,基于角色的訪問控制)模型的架構(gòu)圖;
圖4示出了圖1所示的處理s13的一種實(shí)施方式;
圖5是根據(jù)本發(fā)明方法實(shí)施方式4的數(shù)據(jù)分析方法的流程圖;
圖6示出了圖5所示的處理s21的一種實(shí)施方式;
圖7示出了圖5所示的處理s23的一種實(shí)施方式;
圖8是根據(jù)本發(fā)明裝置實(shí)施方式1的文件生成裝置的結(jié)構(gòu)示意圖;
圖9示出了圖8所示的確定模塊12的一種實(shí)施方式;
圖10示出了圖8所示的生成模塊13的一種實(shí)施方式;
圖11是根據(jù)本發(fā)明裝置實(shí)施方式4的數(shù)據(jù)分析裝置的結(jié)構(gòu)示意圖;
圖12示出了圖11所示的加載模塊21的一種實(shí)施方式;
圖13示出了圖11所示的處理模塊23的一種實(shí)施方式。
具體實(shí)施方式
以下結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明的各個(gè)方面進(jìn)行詳細(xì)闡述。其中,在本發(fā)明的各個(gè)具體實(shí)施方式中,眾所周知的操作過程、模塊、單元及其相互之間的連接、鏈接、通信或操作沒有示出或未作詳細(xì)說明。
并且,所描述的特征、架構(gòu)或功能可在一個(gè)或一個(gè)以上實(shí)施例中以任何方式組合。
此外,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下述的各種實(shí)施方式只用于舉例說明,而非用于限制本發(fā)明的保護(hù)范圍。本領(lǐng)域的技術(shù)人員還可以容易理解,本文所述和附圖所示的各實(shí)施方式中的模塊或單元或步驟可以按多種不同配置進(jìn)行組合和設(shè)計(jì)。
對(duì)于未在本說明書中進(jìn)行具體說明的技術(shù)術(shù)語,除非另有特定說明,都應(yīng)以本領(lǐng)域最寬泛的意思進(jìn)行解釋。
在本發(fā)明的說明書和權(quán)利要求書及上述附圖中的描述的一些流程中,包含了按照特定順序出現(xiàn)的多個(gè)操作,但是應(yīng)該清楚了解,這些操作可以不按照其在本文中出現(xiàn)的順序來執(zhí)行或并行執(zhí)行,操作的序號(hào)如101、102等,僅僅是用于區(qū)分開各個(gè)不同的操作,序號(hào)本身不代表任何的執(zhí)行順序。另外,這些流程可以包括更多或更少的操作,并且這些操作可以按順序執(zhí)行或并行執(zhí)行。需要說明的是,本文中的“第一”、“第二”等描述,是用于區(qū)分不同的消息、設(shè)備、模塊等,不代表先后順序,也不限定“第一”和“第二”是不同的類型。
下面將結(jié)合附圖,對(duì)本發(fā)明實(shí)施方式中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施方式僅僅是本發(fā)明的一部分實(shí)施方式,而不是全部的實(shí)施方式?;诒景l(fā)明中的實(shí)施方式,本領(lǐng)域技術(shù)人員在沒有付出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施方式,都屬于本發(fā)明保護(hù)的范圍。
【方法實(shí)施方式1】
圖1是根據(jù)本發(fā)明方法實(shí)施方式1的文件生成方法的流程圖。參見圖1,在本實(shí)施方式中,所述方法包括:
s11:獲取文件模板。
s12:基于用戶標(biāo)識(shí)符確定用戶權(quán)限。
s13:根據(jù)所述文件模板和所述用戶權(quán)限生成文件。
在本發(fā)明中,所述用戶標(biāo)識(shí)符例如包括但不限于:用戶編號(hào)、用戶郵箱等身份識(shí)別信息。所述用戶權(quán)限例如包括但不限于:權(quán)限名稱以及權(quán)限值集合。其中,權(quán)限名稱用于表明用戶對(duì)何種資源進(jìn)行訪問控制,權(quán)限值集合用于表明用戶有能力訪問的具體資源,例如,權(quán)限名稱為:city(城市),權(quán)限值集合為:{上海,北京,沈陽}。
由于在本發(fā)明中,通過用戶標(biāo)識(shí)符來確定文件中的用戶權(quán)限,因此可以定向生成定制化的文件,以實(shí)現(xiàn)個(gè)性化的權(quán)限約束,從而提高用戶體驗(yàn)度。
【方法實(shí)施方式2】
本實(shí)施方式所提供的方法包括了方法實(shí)施方式1中的全部?jī)?nèi)容,在此不再贅述。其中,如圖2所示,在本實(shí)施方式中,通過下述方式實(shí)現(xiàn)處理s12:
s121:根據(jù)所述用戶標(biāo)識(shí)符獲取權(quán)限模型。
s122:根據(jù)所述權(quán)限模型確定所述用戶權(quán)限。
在本發(fā)明中,所述權(quán)限模型例如包括但不限于:“用戶—權(quán)限”模型、以及“用戶—角色—權(quán)限”模型。
其中,“用戶—權(quán)限”模型是直接關(guān)聯(lián)用戶和權(quán)限的模型;而“用戶—角色—權(quán)限”模型是通過角色關(guān)聯(lián)用戶和權(quán)限的模型,又稱為rbac模型。
圖3示出了rbac模型的架構(gòu)圖。需要說明的是,圖3中的1…?,1…*表示箭頭頭部與箭頭尾部之間的映射數(shù)量關(guān)系。其中,1…?表示箭頭頭部與箭頭尾部均至少1個(gè);1…*表示箭頭頭部至少0個(gè),箭頭尾部至少1個(gè)。比如在用戶和角色之間,用戶至少有1個(gè)角色。
【方法實(shí)施方式3】
本實(shí)施方式所提供的方法包括了方法實(shí)施方式1或者方法實(shí)施方式2中的全部?jī)?nèi)容,在此不再贅述。其中,如圖4所示,在本實(shí)施方式中,通過下述方式實(shí)現(xiàn)處理s13:
s131:從所述文件模板中識(shí)別出與所述用戶權(quán)限的權(quán)限名稱匹配的標(biāo)簽?zāi)0濉?/p>
s132:判斷所述標(biāo)簽?zāi)0宓臄?shù)量是否等于所述用戶權(quán)限中權(quán)限值集合的元素?cái)?shù)量。若是,則執(zhí)行s133,若否,則執(zhí)行s134。
s133:在所述文件模板中,利用所述權(quán)限值集合中不同的元素,分別對(duì)不同的所述標(biāo)簽?zāi)0暹M(jìn)行占位符替換處理。
s134:通過所述標(biāo)簽?zāi)0逡约八鰴?quán)限值集合中的不同元素,分別生成不同的替換標(biāo)簽。
s135:在所述文件模板中,刪除所述標(biāo)簽?zāi)0宀⑶也迦胨鎏鎿Q標(biāo)簽。
在本發(fā)明中,占位符替換處理是指利用指定內(nèi)容來替換占位符(以@開始并且以@結(jié)束的字符串)。
【方法實(shí)施方式4】
圖5是根據(jù)本發(fā)明方法實(shí)施方式4的數(shù)據(jù)分析方法的流程圖。參見圖5,在本實(shí)施方式中,所述方法包括:
s21:基于數(shù)據(jù)分析請(qǐng)求加載文件。
其中,所述文件是根據(jù)方法實(shí)施方式1至3中任一項(xiàng)所提供的方法而生成的。
s22:從所述文件中獲取用戶權(quán)限。
s23:根據(jù)所述數(shù)據(jù)分析請(qǐng)求和所述用戶權(quán)限執(zhí)行數(shù)據(jù)分析處理。
【方法實(shí)施方式5】
本實(shí)施方式所提供的方法包括了方法實(shí)施方式4中的全部?jī)?nèi)容,在此不再贅述。其中,如圖6所示,在本實(shí)施方式中,通過下述方式實(shí)現(xiàn)處理s21:
s211:從所述數(shù)據(jù)分析請(qǐng)求中解析出用戶標(biāo)識(shí)符。
s212:根據(jù)所述用戶標(biāo)識(shí)符加載所述文件。
【方法實(shí)施方式6】
本實(shí)施方式所提供的方法包括了方法實(shí)施方式4或者方法實(shí)施方式5中的全部?jī)?nèi)容,在此不再贅述。其中,如圖7所示,在本實(shí)施方式中,通過下述方式實(shí)現(xiàn)處理s23:
s231:根據(jù)所述數(shù)據(jù)分析請(qǐng)求生成數(shù)據(jù)庫查詢請(qǐng)求。
s232:利用所述用戶權(quán)限對(duì)所述數(shù)據(jù)庫查詢請(qǐng)求進(jìn)行過濾。
s233:基于經(jīng)過濾后的數(shù)據(jù)庫查詢請(qǐng)求從數(shù)據(jù)庫中讀取數(shù)據(jù)。
s234:對(duì)所述數(shù)據(jù)執(zhí)行分析處理。
由于在本發(fā)明中,在查詢數(shù)據(jù)庫之前執(zhí)行數(shù)據(jù)過濾處理,因此可以減小對(duì)數(shù)據(jù)庫的壓力并且還可以提高權(quán)限控制的覆蓋率。
【方法實(shí)施方式7】
下面以olap場(chǎng)景為例,對(duì)本實(shí)施方式所提供的文件生成方法進(jìn)行描述。所述方法包括:
處理1:olap服務(wù)將用戶標(biāo)識(shí)符傳遞給動(dòng)態(tài)處理服務(wù)(以下簡(jiǎn)稱為服務(wù)s)。
處理2:服務(wù)s將用戶標(biāo)識(shí)符發(fā)送至用戶資源列表服務(wù)以請(qǐng)求用戶權(quán)限,并且讀取相應(yīng)的schema文件模板。
處理3:用戶資源列表服務(wù)得到用戶標(biāo)識(shí)符之后基于rbac權(quán)限模型獲取用戶權(quán)限,并且以map(k,v)(名值對(duì))的方式返回用戶權(quán)限。
其中,k為權(quán)限名稱,v為權(quán)限值集合。
處理4:服務(wù)s根據(jù)schema文件模板和用戶權(quán)限生成schema文件。
下面結(jié)合附圖詳細(xì)闡述處理4的具體實(shí)現(xiàn)過程。
針對(duì)各獲取到的用戶權(quán)限分別執(zhí)行下述處理:
a、從schema文件模板中識(shí)別出與用戶權(quán)限的權(quán)限名稱匹配的標(biāo)簽?zāi)0濉?/p>
b、判斷所述標(biāo)簽?zāi)0宓臄?shù)量是否等于所述用戶權(quán)限中權(quán)限值集合的元素?cái)?shù)量。若是,則執(zhí)行c,若否,則執(zhí)行d。
c、在所述文件模板中,利用所述權(quán)限值集合中不同的元素,分別對(duì)不同的所述標(biāo)簽?zāi)0暹M(jìn)行占位符替換處理。
d、通過所述標(biāo)簽?zāi)0逡约八鰴?quán)限值集合中的不同元素,分別生成不同的替換標(biāo)簽,并且,在所述文件模板中,刪除所述標(biāo)簽?zāi)0宀⑶也迦胨鎏鎿Q標(biāo)簽。
以下給出schema文件模板的局部示例:
以k為dynamic_city的用戶權(quán)限為例。在上述schema文件模板中,與該用戶權(quán)限的權(quán)限名稱匹配的標(biāo)簽?zāi)0鍨椋?/p>
<membergrantmember=”[cityrole.default].[city].[@dynamic_city@]”access=”all”></membergrant>
該標(biāo)簽?zāi)0宓臄?shù)量為1。如果該用戶權(quán)限的v為{北京},元素?cái)?shù)量也為1,則直接通過“北京”替換該標(biāo)簽?zāi)0逯械恼嘉环癅dynamic_city@”。
如果該用戶權(quán)限的v為{上海,北京,沈陽},元素?cái)?shù)量為3,則利用該標(biāo)簽?zāi)0逡约皏中的不同元素分別生成不同的替換標(biāo)簽,例如生成的替換標(biāo)簽為:
1、<membergrantmember=”[cityrole.default].[city].[上海]”access=”all”>
</membergrant>
2、<membergrantmember=”[cityrole.default].[city].[北京]”access=”all”>
</membergrant>
3、<membergrantmember=”[cityrole.default].[city].[沈陽]”access=”all”>
</membergrant>
將生成的替換標(biāo)簽插入到schema文件模板中該標(biāo)簽?zāi)0逅诘奈恢茫h除該標(biāo)簽?zāi)0?。因此,原schema文件模板中的內(nèi)容:
<hierarchygranthierarchy=”[cityrole.default]”rolluppolicy=”partial”access=”custom”>
<membergrantmember=”[cityrole.default].[city].[@dynamic_city@]”access=”all”>
</membergrant>
</hierarchygrant>
變成:
<hierarchygranthierarchy=”[cityrole.default]”rolluppolicy=”partial”access=”custom”>
<membergrantmember=”[cityrole.default].[city].[上海]”access=”all”>
</membergrant>
<membergrantmember=”[cityrole.default].[city].[北京]”access=”all”>
</membergrant>
<membergrantmember=”[cityrole.default].[city].[沈陽]”access=”all”>
</membergrant>
</hierarchygrant>
【方法實(shí)施方式8】
下面以olap場(chǎng)景為例,對(duì)本實(shí)施方式所提供的數(shù)據(jù)分析方法進(jìn)行描述。所述方法包括:
處理1:客戶端發(fā)送數(shù)據(jù)分析請(qǐng)求至olap服務(wù)。
處理2:olap服務(wù)從接收的數(shù)據(jù)分析請(qǐng)求中解析出用戶標(biāo)識(shí)符。
處理3:olap服務(wù)根據(jù)解析出的用戶標(biāo)識(shí)符加載schema文件。
其中,schema文件是根據(jù)用戶標(biāo)識(shí)符而生成的定制化文件(具體的生成方式可參見前述文件生成方法,在此不再贅述)。此外,如果schema文件已經(jīng)生成則不會(huì)再次生成,但當(dāng)用戶權(quán)限發(fā)生變更的時(shí)候,需要清理原schema文件并根據(jù)變更后的用戶權(quán)限生成新的schema文件。
處理4:olap服務(wù)從加載的schema文件中獲取用戶權(quán)限。
處理5:olap服務(wù)根據(jù)接收的數(shù)據(jù)分析請(qǐng)求生成數(shù)據(jù)庫查詢請(qǐng)求。
處理6:olap服務(wù)利用獲取的用戶權(quán)限對(duì)生成的數(shù)據(jù)庫查詢請(qǐng)求進(jìn)行過濾。
處理7:olap服務(wù)將經(jīng)過濾后的數(shù)據(jù)庫查詢請(qǐng)求發(fā)送至數(shù)據(jù)倉庫。
處理8:數(shù)據(jù)倉庫接收數(shù)據(jù)庫查詢請(qǐng)求后執(zhí)行查詢處理,并將查詢出的數(shù)據(jù)反饋至olap服務(wù)。
處理9:olap服務(wù)根據(jù)接收的數(shù)據(jù)分析請(qǐng)求對(duì)數(shù)據(jù)倉庫反饋的數(shù)據(jù)執(zhí)行分析處理,并且,將處理結(jié)果反饋至客戶端。
其中,所述分析處理例如包括但不限于:鉆取、切片、以及切塊。
由于在本發(fā)明中,在查詢數(shù)據(jù)庫之前執(zhí)行數(shù)據(jù)過濾處理,因此可以減小對(duì)數(shù)據(jù)庫的壓力并且還可以提高權(quán)限控制的覆蓋率。
【裝置實(shí)施方式1】
圖8是根據(jù)本發(fā)明裝置實(shí)施方式1的文件生成裝置的結(jié)構(gòu)示意圖。參見圖8,文件生成裝置1包括:獲取模塊11、確定模塊12、以及生成模塊13,具體地:
獲取模塊11用于獲取文件模板。
確定模塊12用于基于用戶標(biāo)識(shí)符確定用戶權(quán)限。
生成模塊13用于根據(jù)獲取模塊11獲取的文件模板和確定模塊12確定的用戶權(quán)限生成文件。
在本發(fā)明中,所述用戶標(biāo)識(shí)符例如包括但不限于:用戶編號(hào)、用戶郵箱等身份識(shí)別信息。所述用戶權(quán)限例如包括但不限于:權(quán)限名稱以及權(quán)限值集合。其中,權(quán)限名稱用于表明用戶對(duì)何種資源進(jìn)行訪問控制,權(quán)限值集合用于表明用戶有能力訪問的具體資源,例如,權(quán)限名稱為:city(城市),權(quán)限值集合為:{上海,北京,沈陽}。
由于在本發(fā)明中,通過用戶標(biāo)識(shí)符來確定文件中的用戶權(quán)限,因此可以定向生成定制化的文件,以實(shí)現(xiàn)個(gè)性化的權(quán)限約束,從而提高用戶體驗(yàn)度。
【裝置實(shí)施方式2】
本實(shí)施方式所提供的裝置包括了裝置實(shí)施方式1中的全部?jī)?nèi)容,在此不再贅述。其中,如圖9所示,在本實(shí)施方式中,確定模塊12包括:獲取單元121、以及確定單元122,具體地:
獲取單元121用于根據(jù)所述用戶標(biāo)識(shí)符獲取權(quán)限模型。
確定單元122用于根據(jù)獲取單元121獲取的權(quán)限模型確定所述用戶權(quán)限。
在本發(fā)明中,所述權(quán)限模型例如包括但不限于:“用戶—權(quán)限”模型、以及“用戶—角色—權(quán)限”模型。
其中,“用戶—權(quán)限”模型是直接關(guān)聯(lián)用戶和權(quán)限的模型;而“用戶—角色—權(quán)限”模型是通過角色關(guān)聯(lián)用戶和權(quán)限的模型,又稱為rbac模型。
【裝置實(shí)施方式3】
本實(shí)施方式所提供的裝置包括了裝置實(shí)施方式1或者裝置實(shí)施方式2中的全部?jī)?nèi)容,在此不再贅述。其中,如圖10所示,在本實(shí)施方式中,生成模塊13包括:識(shí)別單元131、判斷單元132、替換單元133、生成單元134、以及刪除及插入單元135,具體地:
識(shí)別單元131用于從所述文件模板中識(shí)別出與所述用戶權(quán)限的權(quán)限名稱匹配的標(biāo)簽?zāi)0濉?/p>
判斷單元132用于判斷識(shí)別單元131識(shí)別出的標(biāo)簽?zāi)0宓臄?shù)量是否等于所述用戶權(quán)限中權(quán)限值集合的元素?cái)?shù)量。
替換單元133用于在判斷單元132判定出標(biāo)簽?zāi)0宓臄?shù)量等于所述元素?cái)?shù)量的情形下,在所述文件模板中,利用所述權(quán)限值集合中不同的元素,分別對(duì)不同的所述標(biāo)簽?zāi)0暹M(jìn)行占位符替換處理。
生成單元134用于在判斷單元132判定出標(biāo)簽?zāi)0宓臄?shù)量不等于所述元素?cái)?shù)量的情形下,通過所述標(biāo)簽?zāi)0逡约八鰴?quán)限值集合中的不同元素,分別生成不同的替換標(biāo)簽。
刪除及插入單元135用于所述文件模板中,刪除所述標(biāo)簽?zāi)0宀⑶也迦肷蓡卧?34生成的替換標(biāo)簽。
在本發(fā)明中,占位符替換處理是指利用指定內(nèi)容來替換占位符(以@開始并且以@結(jié)束的字符串)。
【裝置實(shí)施方式4】
圖11是根據(jù)本發(fā)明裝置實(shí)施方式4的數(shù)據(jù)分析裝置的結(jié)構(gòu)示意圖。參見圖11,數(shù)據(jù)分析裝置2包括:加載模塊21、獲取模塊22、以及處理模塊23,具體地:
加載模塊21用于基于數(shù)據(jù)分析請(qǐng)求加載文件。
其中,所述文件是根據(jù)方法實(shí)施方式1至3中任一項(xiàng)所述的方法而生成的。
獲取模塊22用于從加載模塊21加載的文件中獲取用戶權(quán)限。
處理模塊23用于根據(jù)所述數(shù)據(jù)分析請(qǐng)求和獲取模塊22獲取的用戶權(quán)限執(zhí)行數(shù)據(jù)分析處理。
【裝置實(shí)施方式5】
本實(shí)施方式所提供的裝置包括了裝置實(shí)施方式4中的全部?jī)?nèi)容,在此不再贅述。其中,如圖12所示,在本實(shí)施方式中,加載模塊21包括:解析單元211以及加載單元212,具體地:
解析單元211用于從所述數(shù)據(jù)分析請(qǐng)求中解析出用戶標(biāo)識(shí)符。
加載單元212用于根據(jù)解析單元211解析出的用戶標(biāo)識(shí)符加載所述文件。
【裝置實(shí)施方式6】
本實(shí)施方式所提供的裝置包括了裝置實(shí)施方式4或者裝置實(shí)施方式5中的全部?jī)?nèi)容,在此不再贅述。其中,如圖13所示,在本實(shí)施方式中,處理模塊23包括:生成單元231、過濾單元232、讀取單元233、以及處理單元234,具體地:
生成單元231用于根據(jù)所述數(shù)據(jù)分析請(qǐng)求生成數(shù)據(jù)庫查詢請(qǐng)求。
過濾單元232用于利用所述用戶權(quán)限對(duì)生成單元231生成的數(shù)據(jù)庫查詢請(qǐng)求進(jìn)行過濾。
讀取單元233用于基于經(jīng)過濾單元232過濾后的數(shù)據(jù)庫查詢請(qǐng)求從數(shù)據(jù)庫中讀取數(shù)據(jù)。
處理單元234用于對(duì)讀取單元233讀取出的數(shù)據(jù)執(zhí)行分析處理。
由于在本發(fā)明中,在查詢數(shù)據(jù)庫之前執(zhí)行數(shù)據(jù)過濾處理,因此可以減小對(duì)數(shù)據(jù)庫的壓力并且還可以提高權(quán)限控制的覆蓋率。
本發(fā)明的實(shí)施方式還提供了一種移動(dòng)終端,包括存儲(chǔ)器和處理器;其中,
所述存儲(chǔ)器用于存儲(chǔ)一條或多條計(jì)算機(jī)指令,其中,所述一條或多條計(jì)算機(jī)指令供所述處理器調(diào)用執(zhí)行;
所述處理器用于進(jìn)行如方法實(shí)施方式1至方法實(shí)施方式8中任意一項(xiàng)所述的操作。
此外,本發(fā)明的實(shí)施方式還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有一條或多條計(jì)算機(jī)指令,當(dāng)所述一條或多條計(jì)算機(jī)指令被一個(gè)或多個(gè)設(shè)備執(zhí)行時(shí),使得所述設(shè)備執(zhí)行方法實(shí)施方式1至方法實(shí)施方式8中任意一項(xiàng)所述的操作。
本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可全部通過軟件實(shí)現(xiàn),也可借助軟件結(jié)合硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案對(duì)背景技術(shù)做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,所述計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,智能手機(jī)或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施方式或者實(shí)施方式的某些部分所述的方法。
本文中所使用的“軟件”等詞均指一般意義上的任意類型的計(jì)算機(jī)編碼或者計(jì)算機(jī)可執(zhí)行指令集,可以運(yùn)行所述編碼或者指令集來使計(jì)算機(jī)或其他處理器程序化以執(zhí)行如上所述的本發(fā)明的技術(shù)方案的各個(gè)方面。此外,需要說明的是,根據(jù)實(shí)施方式的一個(gè)方面,在執(zhí)行時(shí)實(shí)施本發(fā)明的技術(shù)方案的方法的一個(gè)或多個(gè)計(jì)算機(jī)程序不必須要在一臺(tái)計(jì)算機(jī)或處理器上,而是可以分布于多個(gè)計(jì)算機(jī)或者處理器中的模塊中,以執(zhí)行本發(fā)明的技術(shù)方案的各個(gè)方面。
計(jì)算機(jī)可執(zhí)行指令可以有許多形式,如程序模塊,可以由一臺(tái)或多臺(tái)計(jì)算機(jī)或是其他設(shè)備執(zhí)行。一般地,程序模塊包括例程、程序、對(duì)象、組件以及數(shù)據(jù)結(jié)構(gòu)等等,執(zhí)行特定的任務(wù)或是實(shí)施特定的抽象數(shù)據(jù)類型。特別地,在各種實(shí)施方式中,程序模塊的功能可以根據(jù)各個(gè)不同實(shí)施方式的需要進(jìn)行結(jié)合或者拆分。
并且,本發(fā)明的技術(shù)方案可以體現(xiàn)為一種方法,并且已經(jīng)提供了所述方法的至少一個(gè)示例??梢酝ㄟ^任何一種合適的順序執(zhí)行動(dòng)作,所述動(dòng)作表現(xiàn)為所述方法中的一部分。因此,實(shí)施方式可以構(gòu)造成可以按照與所示出的執(zhí)行順序不同的順序執(zhí)行動(dòng)作,其中,可以包括同時(shí)地執(zhí)行一些動(dòng)作(盡管在示出的實(shí)施方式中,這些動(dòng)作是連續(xù)的)。
本文所給出的和使用的定義,應(yīng)當(dāng)對(duì)照字典、通過引用而并入的文檔中的定義、和/或其通常意思進(jìn)行理解。
在權(quán)利要求書中以及上述的說明書中,所有的過度短語,例如“包括”、“具有”、“包含”、“承載”、“具有”、“涉及”、“主要由…組成”以及類似詞語是應(yīng)理解為是開放式的,即,包含但不限于。只有“由……組成”應(yīng)該是封閉或半封閉的過度短語。
本發(fā)明說明書中使用的術(shù)語和措辭僅僅為了舉例說明,并不意味構(gòu)成限定。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在不脫離所公開的實(shí)施方式的基本原理的前提下,對(duì)上述實(shí)施方式中的各細(xì)節(jié)可進(jìn)行各種變化。因此,本發(fā)明的范圍只由權(quán)利要求確定,在權(quán)利要求中,除非另有說明,所有的術(shù)語應(yīng)按最寬泛合理的意思進(jìn)行理解。
本發(fā)明公開了a1、一種文件生成方法,包括:
獲取文件模板;
基于用戶標(biāo)識(shí)符確定用戶權(quán)限;
根據(jù)所述文件模板和所述用戶權(quán)限生成文件。
a2、如a1所述的方法中,所述基于用戶標(biāo)識(shí)符確定用戶權(quán)限包括:
根據(jù)所述用戶標(biāo)識(shí)符獲取權(quán)限模型;
根據(jù)所述權(quán)限模型確定所述用戶權(quán)限。
a3、如a1或a2所述的方法中,所述根據(jù)所述文件模板和所述用戶權(quán)限生成文件包括:
從所述文件模板中識(shí)別出與所述用戶權(quán)限的權(quán)限名稱匹配的標(biāo)簽?zāi)0澹?/p>
判斷所述標(biāo)簽?zāi)0宓臄?shù)量是否等于所述用戶權(quán)限中權(quán)限值集合的元素?cái)?shù)量;
若所述標(biāo)簽?zāi)0宓臄?shù)量等于所述元素?cái)?shù)量,則在所述文件模板中,利用所述權(quán)限值集合中不同的元素,分別對(duì)不同的所述標(biāo)簽?zāi)0暹M(jìn)行占位符替換處理。
a4、如a3所述的方法中,所述根據(jù)所述文件模板和所述用戶權(quán)限生成文件還包括:
若所述標(biāo)簽?zāi)0宓臄?shù)量不等于所述元素?cái)?shù)量,則通過所述標(biāo)簽?zāi)0逡约八鰴?quán)限值集合中的不同元素,分別生成不同的替換標(biāo)簽;
在所述文件模板中,刪除所述標(biāo)簽?zāi)0宀⑶也迦胨鎏鎿Q標(biāo)簽。
本發(fā)明還公開了a5、一種數(shù)據(jù)分析方法,包括:
基于數(shù)據(jù)分析請(qǐng)求加載根據(jù)a1至a4中任一項(xiàng)所述的方法生成的文件;
從所述文件中獲取用戶權(quán)限;
根據(jù)所述數(shù)據(jù)分析請(qǐng)求和所述用戶權(quán)限執(zhí)行數(shù)據(jù)分析處理。
a6、如a5所述的方法中,所述根據(jù)所述數(shù)據(jù)分析請(qǐng)求和所述用戶權(quán)限執(zhí)行數(shù)據(jù)分析處理包括:
根據(jù)所述數(shù)據(jù)分析請(qǐng)求生成數(shù)據(jù)庫查詢請(qǐng)求;
利用所述用戶權(quán)限對(duì)所述數(shù)據(jù)庫查詢請(qǐng)求進(jìn)行過濾;
基于經(jīng)過濾后的數(shù)據(jù)庫查詢請(qǐng)求從數(shù)據(jù)庫中讀取數(shù)據(jù);
對(duì)所述數(shù)據(jù)執(zhí)行分析處理。
本發(fā)明還公開了b7、一種文件生成裝置,包括:
獲取模塊,用于獲取文件模板;
確定模塊,用于基于用戶標(biāo)識(shí)符確定用戶權(quán)限;
生成模塊,用于根據(jù)所述文件模板和所述用戶權(quán)限生成文件。
b8、如b7所述的裝置中,所述確定模塊包括:
獲取單元,用于根據(jù)所述用戶標(biāo)識(shí)符獲取權(quán)限模型;
確定單元,用于根據(jù)所述權(quán)限模型確定所述用戶權(quán)限。
b9、如b7或b8所述的裝置中,所述生成模塊包括:
識(shí)別單元,用于從所述文件模板中識(shí)別出與所述用戶權(quán)限的權(quán)限名稱匹配的標(biāo)簽?zāi)0澹?/p>
判斷單元,用于判斷所述標(biāo)簽?zāi)0宓臄?shù)量是否等于所述用戶權(quán)限中權(quán)限值集合的元素?cái)?shù)量;
替換單元,用于在所述標(biāo)簽?zāi)0宓臄?shù)量等于所述元素?cái)?shù)量的情形下,在所述文件模板中,利用所述權(quán)限值集合中不同的元素,分別對(duì)不同的所述標(biāo)簽?zāi)0暹M(jìn)行占位符替換處理。
b10、如b9所述的裝置中,所述生成模塊還包括:
生成單元,用于在所述標(biāo)簽?zāi)0宓臄?shù)量不等于所述元素?cái)?shù)量的情形下,通過所述標(biāo)簽?zāi)0逡约八鰴?quán)限值集合中的不同元素,分別生成不同的替換標(biāo)簽;
刪除及插入單元,用于所述文件模板中,刪除所述標(biāo)簽?zāi)0宀⑶也迦胨鎏鎿Q標(biāo)簽。
本發(fā)明開公開了b11、一種數(shù)據(jù)分析裝置,包括:
加載模塊,用于基于數(shù)據(jù)分析請(qǐng)求加載根據(jù)a1至a4中任一項(xiàng)所述的方法生成的文件;
獲取模塊,用于從所述文件中獲取用戶權(quán)限;
處理模塊,用于根據(jù)所述數(shù)據(jù)分析請(qǐng)求和所述用戶權(quán)限執(zhí)行數(shù)據(jù)分析處理。
b12、如b11所述的裝置中,所述處理模塊包括:
生成單元,用于根據(jù)所述數(shù)據(jù)分析請(qǐng)求生成數(shù)據(jù)庫查詢請(qǐng)求;
過濾單元,用于利用所述用戶權(quán)限對(duì)所述數(shù)據(jù)庫查詢請(qǐng)求進(jìn)行過濾;
讀取單元,用于基于經(jīng)過濾后的數(shù)據(jù)庫查詢請(qǐng)求從數(shù)據(jù)庫中讀取數(shù)據(jù);
處理單元,用于對(duì)所述數(shù)據(jù)執(zhí)行分析處理。
本發(fā)明還公開c13、一種移動(dòng)終端,包括存儲(chǔ)器和處理器;其中,
所述存儲(chǔ)器用于存儲(chǔ)一條或多條計(jì)算機(jī)指令,其中,所述一條或多條計(jì)算機(jī)指令供所述處理器調(diào)用執(zhí)行;
所述處理器用于進(jìn)行如a1至a6中任意一項(xiàng)所述的操作。