2010-09-10 74 views
16

我目前正在爲本地協會開發一個成員管理,我正在開發數據庫模式。我想與大家分享它來改進它,並給出其他基於角色的訪問模型(RBAC)的示例。我會很感激任何建設性的批評,特別是關於我在表格之間使用的關係。基於角色的訪問控制的DB模式

鏈接HIGHRES:http://i.stack.imgur.com/WG3Vz.png

繼承人的模式:DB Schema

工作原理:

我映射現有客戶(該協會的成員竟)從外部應用程序爲我的政府應用。 (客戶表)

該關聯在Division,Subdivisions等(intern_structures表)中構造。每個客戶都可以成爲多個部門,細分部門,部門等的成員。

每個客戶都可以在總統,精算師,司庫等成員(部門,...)中擁有一個或多個角色,並且每個角色都有一定的角色的所有者可以在他的部門,細分部門,部門等中應用其他人的特權。

憑證連接到應用程序的某個操作。憑證的所有者可以在其範圍內的其他成員上執行此操作。可以有多個「獨立」應用程序,但它們都共享相同的認證/授權系統。

應用程序在模塊/子模塊/操作等中構造。一個示例可以是「個人詳細信息」模塊,此模塊包含一個稱爲「圖片」的子模塊,您可以在「查看,刪除,編輯」這張照片。但是你不能刪除任何圖片,除非你試圖刪除圖片的人在你有足夠角色的部門/部分。

內部和應用程序結構都是樹,實現爲鄰接列表嵌套集。鄰接列表確保完整性,並且嵌套集允許我快速遍歷樹。

一個例外是,您可以直接給某人某些憑證(client_credentials)。如果有人需要對不在分區/部分的人執行某些操作,則需要此操作。

因此,某人可以成爲多個divsions/sections中的成員,並且在他所屬的每個部門/部門中獲得多個角色。我將通過他的多個角色合併所有憑據。證書總是正面的,意味着限制性證書是不可能的。

+0

下面是一個簡單的RBAC系統的概念:http://stackoverflow.com/questions/28157798/is-my-role-based-access-control-a-feasible-solution/28159647#28159647 – sled 2015-02-05 16:03:57

回答

3

我打算舉出另一個我非常喜歡的RBAC系統的例子。請查看Tony Marston的radicore框架here

我不確定它是否滿足您的所有要求,但是您可以將您的工作與您的工作進行比較,這可以提供幫助。

0

我似乎沒有會看到大部分的RBAC的映射,如:

Operation = Any action, such as CRUD operations 
Object  = Reference to any object instance 

Permission = Mapping of 'Operation' + 'Object' 

我不知道所有的「憑據」表是?憑證通常具有證明其身份的屬性(即:用戶名/密碼)。爲什麼你有角色的證書?

相關問題