再会。
我有一个基于角色的访问控制数据库,并正在寻找一种有效的方法来获取用户拥有的所有权限。这是原理图:
现在我需要以最(可能)最有效的方式获得所有用户的许可。试过这个查询:
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 表,因为一个独立的访问控制实体可能拥有一组独占的权限。