2010-12-03 69 views
0

我已經構建了一個數據庫驅動的Web應用程序,該應用程序具有用戶和組系統,它們以類似於Linux處理用戶訪問的方式工作。將Linux組織理念應用於Web應用程序

Breif解釋:

用戶可以訪問不同的資源,所述資源被分配給一個組,並且用戶可以具有許多組。

用戶

 
id name 
-- ------- 
1 RedRanger 
2 GreenRanger 
3 BlueRanger 

組分配

 
user group 
---- ----- 
1  33 
1 44 
1 55 
2 33 
2 44 
3 33 
3 44 
3 55 
3 66 

組描述

 
gid name 
--- ---- 
33 user 
44 things 
55 stuff 
66 foo 

資源

 
name group 
---- ----- 
a 33 
b 33 
c 33 
x 44 
y 55 
z 66 

RedRanger可以訪問的,B,C,x和y,但不Ž
GreenRanger只能訪問A,B,C和X
BlueRanger可以訪問的,b,C,X,Y和Z

讓我們說RedRanger需要被拒絕訪問資源

如果我將他從組33中刪除,他不能再訪問b或c,這是不好的。

唯一的選擇是改變一個組,並將其他所有人添加到新組中,但這對3個用戶來說並不是那麼糟糕,但是3,000呢?

如果這種情況經常發生,很快就會出現一團亂七八糟的情況。

這個問題的最佳方法是什麼?

+0

這種做法不是Linux獨有的,而是由Unix/BSD使用。 – Rob 2010-12-04 11:09:58

回答

0

資源應該能夠「屬於」多個組,而不僅僅是一個。這個限制確實限制了設計。

您正在對RBAC系統進行部分操作;有一個閱讀它,看看你可以更靈活一點,以獲得更好的結果。

+0

>「資源應該能夠」屬於「多個組。」這也是我的想法。謝謝你的鏈接!這就是我一直在尋找的。 – ActionOwl 2010-12-06 12:53:36

0

聽起來像RedRanger不再適合角色(組)33並且需要創建一個新角色,以訪問適合這個新角色的功能(資源)。 3個用戶與3000個用戶的關係只是在管理用戶界面中進行更改而不是徹底更新數據庫的問題。