美好的一天。MySQL:從RBAC數據庫中檢索所有權限的最有效方法是什麼?
我有一個基於角色的訪問控制數據庫,並尋找一種有效的方式來獲取用戶擁有的所有權限。這是圖表:
現在我需要得到所有用戶的最(可能)有效的方式許可。試過這個查詢:
SELECT p.name
FROM permission p
WHERE p.id = (
SELECT rpl.permission_id
FROM role_permission_list rpl
WHERE rpl.role_id = (
SELECT url.role_id
FROM user_role_list url
WHERE url.user_id = 2
)
)
但是這個失敗。由於子查詢返回多於1個結果。試圖想到一個加入 - 無法弄清楚。
在此先感謝。
PS:未來會有一個permission_overrides表,因爲一個獨立的訪問控制實體可能擁有專屬權限集。
謝謝!這工作!標記爲已接受的格式和說明! –