2015-02-23 68 views
0

我已經使用具有結構的權限表中可以看出一些實施行級ACL的如自定義ACL行級安全

User_Id 
Subject_Class 
Subject_Id 
Permission_Id 

其中Permission_Id是(讀,寫,更新,刪除,批准等)

我在想是否有任何好處來描述與數據的關係(Relationship_Id)而不是描述權限。

的我們會想法來描述用戶是「所有者」,「審批」,「審閱」,「公共查看器」等

這種關係會再定義一組權限。這可能會減少權限的大小。

對這種方法有什麼想法?

回答

0

如您所見,角色是權限的組合。如果您擁有大小爲n的權限集,則可以擁有所有這些權限的2^n個組合。這意味着如果你有5個權限,你需要32個角色。如果你有10個權限,你會有1024個角色!

使用權限路由對於可維護性來說似乎也更容易 - 比如說您想要從一組用戶中刪除訪問權限。您只需執行一個簡單查詢即可刪除爲這些用戶提供訪問權限的行。但是如果你有角色,你首先需要找到包含訪問權限的所有角色,從特定用戶中刪除這些角色,然後然後找到所有角色,就像每個用戶的前一個角色減去訪問權限,並將這些角色分配給用戶。看起來像很多工作。

+0

關於使用https://github.com/arkhipov/acl,同樣的異議? – 2017-03-04 23:11:11