这是我的SQL问题。我有2张桌子:
用户表:
[UserID] [Access]
Abe A
Abe B
Brad C
Cathy A
角色查找表:
[Role] [Access]
Admin A
Admin B
ReadOnly C
我需要检查用户是否拥有角色的所有访问权限,并最终得到如下表格:
[UserID] [Role}
Abe Admin
Brad ReadOnly
Cathy None
此外,用户可以拥有多个角色,只要它具有这些角色的所有访问权限。
有人能指出方向吗?向我展示逻辑或基本方法将足够有用。我需要在T-SQL中编写代码。谢谢!
答案 0 :(得分:1)
您可以获取用户有权访问的所有角色:
select u.userid, r.role
from users u join
roles r
on u.access = r.access
group by u.userid, r.role
having count(*) = (select count(*) from roles r2 where r2.role = r.role);