給定根據某些用戶權限顯示對象(例如電影)的應用程序。訪問控制:具有附加組成員身份而不是對象屬性的RBAC
一般顯示或創建對象的權限實現爲具有角色和權限的RBAC。
特定訪問具有某些屬性的對象(例如,具有「戲劇」屬性的電影)的權限應使用成員資格實施。這意味着對象沒有屬性「戲劇」,它是組「戲劇」的成員。如果用戶和對象是同一組中的成員,則用戶具有訪問此對象的特定權限。可以有不同的組顯示,創建或刪除對象,如簡單的查看器組或某種編輯組。此外還有一個表格,指定哪些組類型與特定對象上的某些操作相關。例如,對象「電影」上的「顯示」動作的相關組可以是「流派」和「年齡」(電影對某些觀衆的適合性)。
以所述方式實現它的原因是在不觸摸代碼的情況下具有很大的靈活性。可以在數據庫中處理對組的更改。
常規數據庫設計:
示例:電影 「亡魂」 是的基團的成員 「體裁:戲劇」 和 「年齡:18」。如果用戶也是這些組的成員,則用戶可以訪問它。
這聽起來像一個好方法嗎?有沒有類似於這種方法的現有解決方案?它是否有主要的缺點(例如太多的數據庫查詢 - 每天可能有幾百個用戶)?
請與我分享你對這個問題的看法 - 選擇「戲劇」作爲範例的類別並不是巧合;)我只是不知道這是死路一條,還是我正朝着正確的方向前進。我堅持了很長一段時間。
BTW剛剛意識到這個答案也可能證明是有用的:http://stackoverflow.com/questions/30701482/mysql-access-control –
thx快速回復:)我需要一些時間來深入瞭解您的建議。 – NedRise