數據權限控制方法和裝置的製作方法
2023-12-07 23:03:01 2
專利名稱:數據權限控制方法和裝置的製作方法
技術領域:
本發明涉及權限管理,具體而言,涉及一種數據權限控制方法和裝置。
背景技術:
在各類信息系統、網際網路應用的實現中,權限管理已經成為系統的基本核心組成 部分,尤其在集團型企業應用中,由於企業的組織模型的複雜程度大大增強,要求系統的權 限模型具備良好的可用性以及伸縮性。因此,一個好的權限管理模型通常要求具備如下特 徵1.功能權限。2.數據權限。3.特殊權限。而在實現上,通常基於成熟的基於角色的訪問控制(RBAC)模型來實現功能權限。 通過對於特殊業務邏輯關係的提取,定義通用的業務規則來實現特殊權限,例如擁有者權 限、領導權限等。而數據權限通常包括以下幾個方面1.實體級別數據權限。2.實體屬性級別數據權限。3.數據權限的應用範圍。通常基於RBAC模型定義的用戶、角色以及實體的操作進 行逐級綁定分配。而在數據權限的實現上,通常採用如下方式1.基於實體方法進行實體數據的權限控制判斷。2.基於組合條件SQL的方式進行權限控制判斷。通過以上方式進行數據權限的實現,存在以下不足一、基於實體方法進行實例的權限控制判斷,適用於屬性級別數據權限,存在對於 實體級別數據權限存在查詢時無法判斷,數據批量處理、分頁時無法處理等弊端。二、基於組合條件SQL的方式進行權限控制判斷,能夠較好的處理數據批量數據 處理以及分頁等處理的弊端,但是在進行SQL組合以及執行時,在系統數據實體關係複雜, 並且數據量較大的情況下,性能較差,處理時間往往會超過20分鐘。因此,需求一種針對數據權限的權限控制判斷的方式,能夠使用戶在進行基於數 據權限判斷的查詢時,提高用戶的查詢效率,同時簡化用戶的操作。
發明內容
本發明所要解決的技術問題在於,提供一種針對數據權限的權限控制判斷的方 式,能夠使用戶在進行基於數據權限判斷的查詢時,提高用戶的查詢效率,同時簡化用戶的 操作。有鑑於此,本發明提供一種數據權限控制方法,包括步驟102,為指定實體設置規則,並將所述規則持久化;步驟104,根據所述規則,取得所述指定實體的符合規則數據 並持久化;步驟106,在用戶查詢所述指定實體的數據時,提供所述符合規則數據以供所述 用戶查詢。通過該技術方案,可以將符合權限規則的數據預先持久化,用戶在符合規則數據 中查詢自己所需數據即可,提高了效率。在上述技術方案中,優選地,在所述步驟102中,為所述指定實體設置規則明細, 根據所有屬性的規則明細得到所述規則。在上述技術方案中,優選地,所述規則明細的類型包括普通屬性、參照關聯屬性、 用戶及系統上下文屬性;在所述步驟102中,為普通屬性的規則明細生成第一 SQL腳本,為 參照關聯屬性的規則明細生成第二 SQL腳本和數據檢測腳本,為用戶及系統上下文屬性的 規則明細生成第三SQL腳本,根據所有的第一 SQL腳本、所有的第二 SQL腳本、所有的第三 SQL腳本得到所述規則的SQL腳本,根據所有的數據檢測腳本得到所述規則的數據檢測腳 本;在所述步驟104中,取得所述指定實體的符合所述規則的數據檢測腳本的數據,作為所 述符合規則數據;在所述步驟106中,所述用戶根據所述規則的SQL腳本對所述規則數據進 行查詢。通過該技術方案,使得可以根據不同情況靈活地配置規則,使生成的符合規則數據 更適合業務需要。在上述技術方案中,優選地,增加或修改實體的數據時,取得所述實體的符合規則 數據並持久化;刪除所述實體的數據時,刪除所述實體的已持久化的符合規則數據。在上述技術方案中,優選地,在所述實體的參照關聯屬性規則明細的關聯實體進 行增加、修改或刪除數據時,重新取得所述實體的符合規則數據並持久化。本發明還提供一種數據權限控制裝置,包括規則設置模塊,為指定實體設置規 則,並將所述規則持久化;符合規則數據模塊,根據所述規則,取得所述指定實體的符合規 則數據並持久化;數據查詢模塊,在用戶查詢所述指定實體的數據時,提供所述符合規則數 據以供所述用戶查詢。通過該技術方案,可以將符合權限規則的數據預先持久化,用戶在符 合規則數據中查詢自己所需數據即可,提高了效率。在上述技術方案中,優選地,所述規則設置模塊中,為所述指定實體設置規則明 細,根據所有屬性的規則明細得到所述規則。在上述技術方案中,優選地,所述規則明細的類型包括普通屬性、參照關聯屬性、 用戶及系統上下文屬性;所述規則設置模塊為普通屬性的規則明細生成第一 SQL腳本,為 參照關聯屬性的規則明細生成第二 SQL腳本和數據檢測腳本,為用戶及系統上下文屬性的 規則明細生成第三SQL腳本,根據所有的第一 SQL腳本、所有的第二 SQL腳本、所有的第三 SQL腳本得到所述規則的SQL腳本,根據所有的數據檢測腳本得到所述規則的數據檢測腳 本;所述符合規則數據模塊取得所述指定實體的符合所述規則的數據檢測腳本的數據,作 為所述符合規則數據;所述數據查詢模塊供所述用戶根據所述規則的SQL腳本對所述規則 數據進行查詢。通過該技術方案,使得可以根據不同情況靈活地配置規則,使生成的符合規 則數據更適合業務需要。在上述技術方案中,優選地,還包括數據維護模塊,在增加或修改實體的數據時, 通知所述符合規則數據模塊取得所述實體的符合規則數據並持久化;在刪除所述實體的數 據時,通知所述符合規則數據模塊刪除所述實體的已持久化的符合規則數據。在上述技術方案中,優選地,還包括關聯數據維護模塊,在所述實體的參照關聯屬性規則明細的關聯實體進行增加、修改或刪除數據時,通知所述符合規則數據模塊重新 取得所述實體的符合規則數據並持久化。通過上述技術方案,可以實現一種數據權限控制方法和裝置,能夠使用戶在進行 基於數據權限判斷的查詢時,提高用戶的查詢效率,同時簡化用戶的操作。
圖1是根據本發明的一個實施例的數據權限控制方法的流程圖;圖2是根據本發明的一個實施例的數據權限控制裝置的框圖;圖3是根據本發明的一個實施例的數據權限控制裝置的整體結構的示意圖;圖4是根據本發明的一個實施例的數據權限控制方法的規則設置的流程示意圖;圖5是根據本發明的一個實施例的數據權限控制方法的規則、規則明細和符合規 則數據的關係示意圖;圖6是根據本發明的一個實施例的數據權限控制裝置的規則、規則明細和符合規 則數據的詳細關係示意圖;圖7是根據本發明的一個實施例的數據權限控制方法的用於處理的業務實體的 示意圖。
具體實施例方式為了能夠更清楚地理解本發明的上述目的、特徵和優點,下面結合附圖和具體實 施方式對本發明進行進一步的詳細描述。在下面的描述中闡述了很多具體細節以便於充分理解本發明,但是,本發明還可 以採用其他不同於在此描述的其他方式來實施,因此,本發明並不限於下面公開的具體實 施例的限制。圖1是根據本發明的一個實施例的數據權限控制方法的流程圖。如圖1所示,本發明提供一種數據權限控制方法,包括步驟102,為指定實體設置 規則,並將所述規則持久化;步驟104,根據所述規則,取得所述指定實體的符合規則數據 並持久化;步驟106,在用戶查詢所述指定實體的數據時,提供所述符合規則數據以供所述 用戶查詢。通過該技術方案,可以將符合權限規則的數據預先持久化,用戶在符合規則數據 中查詢自己所需數據即可,提高了效率。在上述技術方案中,在所述步驟102中,為所述指定實體設置規則明細,根據所有 屬性的規則明細得到所述規則。在上述技術方案中,所述規則明細的類型包括普通屬性、參照關聯屬性、用戶及 系統上下文屬性;在所述步驟102中,為普通屬性的規則明細生成第一 SQL腳本,為參照關 聯屬性的規則明細生成第二 SQL腳本和數據檢測腳本,為用戶及系統上下文屬性的規則明 細生成第三SQL腳本,根據所有的第一 SQL腳本、所有的第二 SQL腳本、所有的第三SQL腳 本得到所述規則的SQL腳本,根據所有的數據檢測腳本得到所述規則的數據檢測腳本;在 所述步驟104中,取得所述指定實體的符合所述規則的數據檢測腳本的數據,作為所述符 合規則數據;在所述步驟106中,所述用戶根據所述規則的SQL腳本對所述規則數據進行查 詢。通過該技術方案,使得可以根據不同情況靈活地配置規則,使生成的符合規則數據更適
6合業務需要。在上述技術方案中,增加或修改實體的數據時,取得所述實體的符合規則數據並 持久化;刪除所述實體的數據時,刪除所述實體的已持久化的符合規則數據。在上述技術方案中,在所述實體的參照關聯屬性規則明細的關聯實體進行增加、 修改或刪除數據時,重新取得所述實體的符合規則數據並持久化。圖2是根據本發明的一個實施例的數據權限控制裝置的框圖。如圖2所示,本發明還提供一種數據權限控制裝置200,包括規則設置模塊202, 為指定實體設置規則,並將所述規則持久化;符合規則數據模塊204,根據所述規則,取得 所述指定實體的符合規則數據並持久化;數據查詢模塊206,在用戶查詢所述指定實體的 數據時,提供所述符合規則數據以供所述用戶查詢。通過該技術方案,可以將符合權限規則 的數據預先持久化,用戶在符合規則數據中查詢自己所需數據即可,提高了效率。在上述技術方案中,所述規則設置模塊202中,為所述指定實體設置規則明細,根 據所有屬性的規則明細得到所述規則。在上述技術方案中,所述規則明細的類型包括普通屬性、參照關聯屬性、用戶及系 統上下文屬性;所述規則設置模塊202為普通屬性的規則明細生成第一 SQL腳本,為參照關 聯屬性的規則明細生成第二 SQL腳本和數據檢測腳本,為用戶及系統上下文屬性的規則明 細生成第三SQL腳本,根據所有的第一 SQL腳本、所有的第二 SQL腳本、所有的第三SQL腳 本得到所述規則的SQL腳本,根據所有的數據檢測腳本得到所述規則的數據檢測腳本;所 述符合規則數據模塊204取得所述指定實體的符合所述規則的數據檢測腳本的數據,作為 所述符合規則數據;所述數據查詢模塊206供所述用戶根據所述規則的SQL腳本對所述規 則數據進行查詢。通過該技術方案,使得可以根據不同情況靈活地配置規則,使生成的符合 規則數據更適合業務需要。在上述技術方案中,還包括數據維護模塊,在增加或修改實體的數據時,通知所 述符合規則數據模塊204取得所述實體的符合規則數據並持久化;在刪除所述實體的數據 時,通知所述符合規則數據模塊204刪除所述實體的已持久化的符合規則數據。在上述技術方案中,還包括關聯數據維護模塊,在所述實體的參照關聯屬性規則 明細的關聯實體進行增加、修改或刪除數據時,通知所述符合規則數據模塊204重新取得 所述實體的符合規則數據並持久化。圖3是根據本發明的一個實施例的數據權限控制裝置的整體結構的示意圖。如圖3所示,規則設置模塊202用於,設置規則,通過選擇要啟用數據權限的實體 及設置規則相關的明細條件。在設置數據完成後,要根據規則檢測並持久化符合規則數據。數據維護模塊208用於維護數據,增刪改已啟用數據權限實體的數據時,執行更 新符合規則數據。保證符合規則數據中時刻保持準確的數據。關聯數據維護模塊210,如果規則設置中有關聯其他實體屬性,則進行關聯實體的 數據維護時,需要同步更新符合規則數據。數據查詢模塊206,在進行查詢數據時,首先查詢出可以應用的規則,然後依據前 期維護的符合規則數據,以及規則SQL腳本,查詢規則數據及符合規則數據。符合規則數據模塊204,在整個流程中,規則數據,業務數據、以及業務數據符合規 則的數據關聯都進行數據持久化,以保證查詢優化。
圖4是根據本發明的一個實施例的數據權限控制方法的規則設置的流程示意圖。如圖4所示,步驟402,首先選擇規則作用實體。規則作用實體指的是應用數據權 限規則的實體。在同一個實體上可以綁定多個規則,規則關係可以為「或」或者「與」的關 系,並且對於不同的場景可以啟用不同的規則組合。例如採購訂單實體。步驟404,其次選擇實體屬性增加規則條目。本步中,選擇第一步選擇的實體,然後 選擇某個屬性,用以針對這個屬性設置規則條目即明細。例如採購訂單的採購訂單總金額 屬性。步驟406,設置規則條目屬性。本步完成規則條目即明細的標識其特徵的屬性設置。步驟408,確定是否繼續添加規則條目。在每個規則中可以包含多個規則明細。本 步驟中可進行多次添加。步驟410,保存規則數據。本步負責將規則數據進行持久化本步負責將規則數據進 行持久化。步驟412,計算符合規則數據並持久化。根據上一步持久化的數據中的檢測規則, 檢測是否有數據符合規則,如果符合規則則持久化保存。例如採購訂單上定義了一個數據 權限規則「規則1」,規則1保存後,立刻依據規則1的檢測規則,檢測現有的所有採購訂單 是否有符合規則的數據,如果有,則將符合規則的數據標識持久化。圖5是根據本發明的一個實施例的數據權限控制方法的規則、規則明細和符合規 則數據的關係示意圖。圖6是根據本發明的一個實施例的數據權限控制裝置的規則、規則 明細和符合規則數據的詳細關係示意圖根據本實施例中的數據權限控制方法,解決性能問題的關鍵在於規則策略以及對 於符合數據權限規則的數據的檢測判斷並持久化處理,和依據此持久化數據進行的SQL檢 索過程。在實施例中,數據權限的規則策略為依據規則的特徵將規則明細分為三種類型, 並且對每種類型的規則明細的持久化以及檢索處理進行不同的優化處理,從而達到優化性 能的效果。規則明細類型定義如下表所示
權利要求
一種數據權限控制方法,其特徵在於,包括步驟102,為指定實體設置規則,並將所述規則持久化;步驟104,根據所述規則,取得所述指定實體的符合規則數據並持久化;步驟106,在用戶查詢所述指定實體的數據時,提供所述符合規則數據以供所述用戶查詢。
2.根據權利要求1所述的數據權限控制方法,其特徵在於,在所述步驟102中,為所述 指定實體設置規則明細,根據所有屬性的規則明細得到所述規則。
3.根據權利要求2所述的數據權限控制方法,其特徵在於,所述規則明細的類型包括 普通屬性、參照關聯屬性、用戶及系統上下文屬性;在所述步驟102中,為普通屬性的規則明細生成第一 SQL腳本,為參照關聯屬性的規 則明細生成第二 SQL腳本和數據檢測腳本,為用戶及系統上下文屬性的規則明細生成第三 SQL腳本,根據所有的第一 SQL腳本、所有的第二 SQL腳本、所有的第三SQL腳本得到所述規 則的SQL腳本,根據所有的數據檢測腳本得到所述規則的數據檢測腳本;在所述步驟104中,取得所述指定實體的符合所述規則的數據檢測腳本的數據,作為 所述符合規則數據;在所述步驟106中,所述用戶根據所述規則的SQL腳本對所述規則數據進行查詢。
4.根據權利要求1至3中任一項所述的數據權限控制方法,其特徵在於,增加或修改實 體的數據時,取得所述實體的符合規則數據並持久化;刪除所述實體的數據時,刪除所述實體的已持久化的符合規則數據。
5.根據權利要求4所述的數據權限控制方法,其特徵在於,在所述實體的參照關聯屬 性規則明細的關聯實體進行數據的增加、修改或刪除時,重新取得所述實體的符合規則數 據並持久化。
6.一種數據權限控制裝置,其特徵在於,包括規則設置模塊,為指定實體設置規則,並將所述規則持久化; 符合規則數據模塊,根據所述規則,取得所述指定實體的符合規則數據並持久化; 數據查詢模塊,在用戶查詢所述指定實體的數據時,提供所述符合規則數據以供所述 用戶查詢。
7.根據權利要求6所述的數據權限控制裝置,其特徵在於,所述規則設置模塊中,為所 述指定實體設置規則明細,根據所有屬性的規則明細得到所述規則。
8.根據權利要求7所述的數據權限控制裝置,其特徵在於,所述規則明細的類型包括 普通屬性、參照關聯屬性、用戶及系統上下文屬性;所述規則設置模塊為普通屬性的規則明細生成第一 SQL腳本,為參照關聯屬性的規 則明細生成第二 SQL腳本和數據檢測腳本,為用戶及系統上下文屬性的規則明細生成第三 SQL腳本,根據所有的第一 SQL腳本、所有的第二 SQL腳本、所有的第三SQL腳本得到所述規 則的SQL腳本,根據所有的數據檢測腳本得到所述規則的數據檢測腳本;所述符合規則數據模塊取得所述指定實體的符合所述規則的數據檢測腳本的數據,作 為所述符合規則數據;所述數據查詢模塊供所述用戶根據所述規則的SQL腳本對所述規則數據進行查詢。
9.根據權利要求6至8中任一項所述的數據權限控制裝置,其特徵在於,還包括數據維護模塊,在增加或修改實體的數據時,通知所述符合規則數據模塊取得所述實 體的符合規則數據並持久化;在刪除所述實體的數據時,通知所述符合規則數據模塊刪除所述實體的已持久化的符 合規則數據。
10.根據權利要求9所述的數據權限控制裝置,其特徵在於,還包括 關聯數據維護模塊,在所述實體的參照關聯屬性規則明細的關聯實體進行數據增加、 修改或刪除時,通知所述符合規則數據模塊重新取得所述實體的符合規則數據並持久化。
全文摘要
本發明提供一種數據權限控制方法,包括步驟102,為指定實體設置規則,並將所述規則持久化;步驟104,根據所述規則,取得所述指定實體的符合規則數據並持久化;步驟106,在用戶查詢所述指定實體的數據時,提供所述符合規則數據以供所述用戶查詢。本發明還提供了一種數據權限控制裝置。通過本發明的技術方案,可以實現一種數據權限控制方法和裝置,能夠使用戶在進行基於數據權限判斷的查詢時,提高用戶的查詢效率,同時簡化用戶的操作。
文檔編號G06F17/30GK101944127SQ201010292019
公開日2011年1月12日 申請日期2010年9月26日 優先權日2010年9月26日
發明者王繼偉 申請人:用友軟體股份有限公司