日本无码中文字幕片|日本精品在线观看无码视频|国产精品免费啪啪|Av无码一区二区|亚洲在线黄片免费观看|亚洲日韩中文字幕在线观看|熟女激情乱伦在线观看a黄片|成年人观看毛片网址|AV色色色色日韩性草|国产高清无码免费

java語言

JAVA的數(shù)據(jù)權限設計

時間:2025-02-03 13:22:24 java語言 我要投稿
  • 相關推薦

JAVA的數(shù)據(jù)權限設計

  數(shù)據(jù)權限跟功能權限有很大的不同,顆粒度很小,貫穿于整個項目的開發(fā)周期中,無法像功能權限一樣在項目要結尾的時候追加,也有一些公司有自己的權限組件(功能權限),給已完成的項目配上權限組件就生效了。數(shù)據(jù)權限做不到組件級別,必須在項目設計階段就已經規(guī)劃好。之前看網(wǎng)上同樣有人想基于SPRING切面的原理去實現(xiàn)數(shù)據(jù)權限,這樣就可以做到了低侵入、低耦合,想法很好,可是現(xiàn)實很骨感,這樣做使整個應用系統(tǒng)效率大減折扣,同樣對數(shù)據(jù)權限的控制策略也很不靈活。下面是小編為大家?guī)淼年P于JAVA的數(shù)據(jù)權限設計的知識,歡迎閱讀。

  序言

  在各種系統(tǒng)中,要保證數(shù)據(jù)對象的安全性以及易操作性,使企業(yè)的各業(yè)務部門、職能部門能夠方便而且高效的協(xié)同工作,那么一個好的數(shù)據(jù)權限管理設計就成為一個關鍵的問題。雖然企業(yè)中各個單元的工作流程有所不同,處理的數(shù)據(jù)對象也有所不同,但是在組織結構、信息的處理方式上具有很多相同的地方,這就為設計數(shù)據(jù)對象的權限控制提供了一個抽象基礎。數(shù)據(jù)權限的控制不同于一般的功能權限的控制,一般的功能權限指的是某個用戶、角色或者是某個用戶組能不能操作某種功能。而數(shù)據(jù)權限指的是某個用戶、角色或者是某個用戶組對某個數(shù)據(jù)對象的操作幅度的問題,比如說用戶A可以對數(shù)據(jù)對象進行完全控制,而用戶B則只能對數(shù)據(jù)對象進行瀏覽的權限,同時數(shù)據(jù)權限控制隸屬于動態(tài)權限控制的范疇。

  數(shù)據(jù)權限設計

  在當前的許多應用程序中都會涉及到權限管理,權限主要分為功能權限和數(shù)據(jù)權限,至于功能權限相對簡單些,網(wǎng)上也有不少的實現(xiàn)方案,這里不再介紹,下邊主要探討下數(shù)據(jù)權限的設計方案。

  數(shù)據(jù)權限跟功能權限有很大的不同,顆粒度很小,貫穿于整個項目的開發(fā)周期中,無法像功能權限一樣在項目要結尾的時候追加,也有一些公司有自己的權限組件(功能權限),給已完成的項目配上權限組件就生效了。數(shù)據(jù)權限做不到組件級別,必須在項目設計階段就已經規(guī)劃好。之前看網(wǎng)上同樣有人想基于SPRING切面的原理去實現(xiàn)數(shù)據(jù)權限,這樣就可以做到了低侵入、低耦合,想法很好,可是現(xiàn)實很骨感,這樣做使整個應用系統(tǒng)效率大減折扣,同樣對數(shù)據(jù)權限的控制策略也很不靈活。

  下邊提出自己的設計方案,在系統(tǒng)中獨立一個數(shù)據(jù)權限模塊,該模塊可以根據(jù)當前業(yè)務模塊的SQL、當前操作人信息、當前權限的策略來自動生成對應的帶數(shù)據(jù)權限的SQL語句給業(yè)務模塊繼續(xù)處理。

  數(shù)據(jù)權限設計分析

  SQL語句可擴展

  數(shù)據(jù)權限往往作為功能權限的高級行為,可以從數(shù)據(jù)對象的幅度方面進行控制,比如用戶只能看自己的訂單、普通會員看不到某數(shù)據(jù)對象的高級屬性(字段)等等。顆粒度這么細的情況下對結果集處理顯然是不可能了,這時只能介入到SQL語句中了,此時又不想在開發(fā)階段讓開發(fā)人員過多的考慮數(shù)據(jù)權限的問題,這時最好把SQL語句給提到一個配置文件中,或者數(shù)據(jù)庫中,開發(fā)階段只需開發(fā)人員通過數(shù)據(jù)權限模塊的接口調用得到已實現(xiàn)數(shù)據(jù)權限控制的SQL語句,這樣也算做到的代碼的低侵入。

  SQL語句高效解析處理

  數(shù)據(jù)權限模塊的核心之一就有SQL語句的高效解析處理,SQL處理指根據(jù)當前登錄人信息及數(shù)據(jù)權限策略生成一個帶有數(shù)據(jù)權限處理結果的SQL語句,所以這里對SQL語句的解析處理必須要求精確、準確。在開發(fā)階段由開發(fā)人員把SQL寫入到配置文件中,在運行階段由數(shù)據(jù)權限取得該SQL進行分析處理(加上數(shù)據(jù)權限),這樣就完成了SQL的組裝處理。

  數(shù)據(jù)權限策略設計

  最核心的地方就是數(shù)據(jù)權限策略的設計了,這里先引入幾個概念:

  1、資源:數(shù)據(jù)權限的控制對象,業(yè)務系統(tǒng)中的各種資源。比如訂單單據(jù)、銷售單等

  2、主體:用戶、部門、角色等

  3、規(guī)則:用于【數(shù)據(jù)權限】的條件規(guī)則

  這里側重分析下主體及規(guī)則,主體有層級關系,可以為不同主體設置不同規(guī)則,比如:當前數(shù)據(jù)僅對創(chuàng)建人(或者某個人)有效、下級主體的權限對于上級主體同樣有效(可配置,如可勾選)、非當前主體只能看到部分數(shù)據(jù)(部分數(shù)據(jù)可選)。這里只提供部分規(guī)則示例,現(xiàn)實環(huán)境中需要根據(jù)企業(yè)環(huán)境或者項目環(huán)境去完善這些規(guī)則。

  數(shù)據(jù)權限策略優(yōu)化

  數(shù)據(jù)權限同樣屬于權限范疇,每次訪問都會去請求驗證權限,所以權限的認證必須要高效,這時可以寫算法或者是用MEMCACHE等來提高響應速度。


【JAVA的數(shù)據(jù)權限設計】相關文章:

理解Java訪問權限的控制07-22

Java編程里的包及訪問權限08-14

java的數(shù)據(jù)類型03-31

Java 數(shù)據(jù)結構01-25

java數(shù)據(jù)的靜態(tài)屬性06-13

Java數(shù)據(jù)類型02-25

Java數(shù)據(jù)類型轉換08-04

java的數(shù)據(jù)類型說明02-11

Java中的數(shù)據(jù)結構06-19