【发布时间】:2021-06-03 10:23:40
【问题描述】:
我正在使用此查询通过会话 ID 从他们的会话中获取用户数据
SELECT authorized_users.*
FROM sessions
JOIN authorized_users
ON authorized_users.user_id = sessions.user
WHERE sessions.id = 'SESSION_ID_HERE';
然后我使用这个查询来获取用户的权限(按位),方法是将用户拥有的权限整数与一个包含所有可能权限的表进行比较
SELECT user_permissions.permission_name
FROM authorized_users
LEFT
JOIN user_permissions
ON authorized_users.permissions & user_permissions.bits
WHERE authorized_users.user_id = 'USER_ID_HERE'
AND user_permissions.app = 'global'
在此示例中应用名称是全局的,但是可以是一系列不同的应用,所有应用的权限都存储在同一个表中,包含位和权限名称,位可以有重复,因此应用名称用于区分哪些应用权限是需要。
如何使用一个查询来做到这一点?
我的目标是从用户的会话 ID 中获取权限名称
这是我的桌子:
sessions:
authorized_users:
user_permissions:
【问题讨论】: