需求分析—場景
假設需要為公司設計乙個人員管理系統,並為各級領導及全體員工分配系統登入賬號。有如下幾個要求:
1. 許可權等級不同:公司領導登入後可檢視所有員工資訊,部門領導登入後只可檢視本部門員工的資訊,員工登入後只可檢視自己的資訊;
2. 訪問許可權不同:如公司領導登入後,可檢視員工薪水分布介面,而員工則不能看到;
3. 操作許可權不同:如系統管理員可以在資訊發布介面進行增刪改查發布資訊,而普通員工只可以在資訊發布介面進行檢視,不能修改、刪除和新增。
功能分析
1. 登入乙個系統,基本都需要使用者輸入使用者名稱、密碼;
2. 每個使用者的角色不同,則其訪問許可權一般也不同,如:
系統管理員:可以檢視所有介面;
普通使用者:只能檢視部分介面。
3. 不同的使用者,即使可以檢視同樣的介面,但在該介面上可進行的操作許可權也不同,如:
使用者1:可以在介面1上進行增刪改查;
使用者2:只可以在介面1上檢視,不具備增刪改功能;
4. 不同使用者基本都對應不同角色,如:使用者1、使用者2分別對應管理員角色、操作員角色,角色之間也存在許可權等級的差異,如:
角色1:對應省級管理員;==>可以檢視該省下的所有學校資訊;
角色2:對應市級管理員;==>可以檢視該市下的所有學校資訊;
角色3:對應縣級管理員;==>可以檢視該縣下的所有學校資訊;
不管是省、市、縣哪個系統管理員,他們可訪問的介面都是相同的(即訪問許可權相同),且在每個介面上可進行的操作許可權也相同的,不同的是每個管理員角色可以訪問的學校個數和學校範圍不同,這裡稱這種不同為:許可權等級不同;
總結:從上面的分析中,主要涉及到以下幾個概念:
1.角色:
如系統管理員角色,系統操作員角色,普通使用者角色;
不同的角色,其訪問許可權是不同的,即可訪問的模組(介面)集合是不同的;
角色的許可權等級也不同,許可權等級如:公司領導、部分領導、普通員工;
2. 模組:(介面)
模組就是指具體的介面,每個模組上又有不同的操作,如增刪改查;
3. 訪問許可權:確定角色可以訪問的模組(介面)集合;
4. 操作許可權:確定可以在各模組(介面)上進行的操作集合,如增刪改查;
5. 許可權等級:即確定角色可以訪問的範圍,如:
角色1:許可權等級為公司領導,則可以檢視公司所有員工資訊;
角色2:許可權等級為部門領導,則只可以檢視該部門所有員工資訊。
資料庫設計
總體模型:
1.模組定義表:
模組是分層級的,如:資訊管理–>****管理;
每個模組都有上級模組。
2. 角色定義表:
含有角色許可權等級,用於為角色分配許可權等級;
角色許可權等級:是乙個選單選項,包括公司領導、部門領導、普通員工;
3.授權定義表:
用於給角色分配訪問許可權以及為每個模組分配操作許可權;
1個角色可以含有多個模組,同樣1個模組可以分配給多個角色,所以角色和模組是多對多的關係;這種多對多的關係可以使用關係表來實現,即通過聯合主鍵和實現關係表:
表中含有字段「操作許可權」,用於給每個介面分配操作許可權,見下圖:
若該模組有增刪改查功能,則操作許可權15,即二進位制的「1111」,若該模組只有檢視功能,則操作許可權為2,即二進位制的「0010」,同樣的,「0111」表示該模組有增、改、查功能;
4. 系統使用者表:
該表中「角色許可權等級」—>應與「所屬角色」中的許可權等級保持一致,之所以該表中重複該欄位,是為了方便查詢。
角色許可權等級取值:
1. 公司領導:company_id不能為空;
2. 部門領導:company_id、dept_id不能為空;
3. 普通員工:company_id、dept_id、staff_id不能為空;
登入執行過程
1. 系統登入時,首先輸入使用者名稱、密碼;
2. 確定訪問許可權:
2.1 判斷該使用者的「角色編號」;
2.2 在「授權定義表」中根據該「角色編號」查詢相應的模組,找到的模組集合即是訪問許可權;
3. 確定操作許可權:
3.1 在2.2步驟中查詢到的每個模組都有相應的操作許可權,即構成了每個模組的操作許可權;
4. 確定許可權等級:
4.1 結合該使用者的「角色許可權等級」+「公司標識」+「部門標識」+「員工標識」,到員工資訊表中去查詢相應員工,具體如下:
角色許可權等級取值:
1. 公司領導:查詢<員工資訊表.公司標識==該使用者.公司標識》的所有使用者;
2. 部門領導:查詢<員工資訊表.公司標識==該使用者.公司標識 &&
員工資訊表.部門標識==該使用者.部門標識>的所有使用者;
3. 普通員工:查詢<員工資訊表.公司標識==該使用者.公司標識 &&
員工資訊表.部門標識==該使用者.部門標識 &&
員工資訊表.員工標識==該使用者.公司標識>的所有使用者;
許可權系統設計
許可權系統 2 operation 許可權控制可以看作乙個filter模式的應用,這也符合aop思想的應用條件。在乙個簡化的圖象中,我們只需要將乙個判別函式 isallowed subject,operation,resource 插入到所有安全敏感的函式呼叫之前就可以了。雖然概念上很完美,具體實現...
使用者許可權系統設計方案
鍾峰 2004年10月 版本 1.0.0 本文介紹乙個應用於 企業應用通用的使用者許可權系統的設計框架,其設計思想與主要文件 自 sunwu software studio 的 isecuritymanager 產品。本指南適用於體系結構設計人員和開發人員。安全始終是可信賴的企業應用的基石。在企業應...
使用者許可權系統設計方案
鍾峰 2004年10月 版本 1.0.0 本文介紹乙個應用於 企業應用 通用的使用者許可權系統的設計框架,其設計思想與主要文件 自 sunwu software studio 的 isecuritymanager 產品。本指南適用於體系結構設計人員和開發人員。安全始終是可信賴的企業應用 的基石。在企...