【发布时间】:2014-05-27 16:36:36
【问题描述】:
我正在使用 MS SQL。
我的安全系统有一个访问组/权限一对多表设置。用户被分配了一个组。每个组可以有许多不同的权限。我需要一个 select 语句来检查(返回计数)组是否具有特定权限。
我将为 select 语句提供的数据是用户的 GroupID 和他们请求访问的权限名称。
逻辑上我需要的是:
- 获取权限名称的 ID。
pID = SELECT permissionID FROM Permission_List WHERE permissionName = 'News' - 检查
Group_Permission表,看看用户的GroupID是否与permissionID等于pID相交 - 如果计数为 0,则组无权访问。如果计数为 1,则该组有权访问。(我将在 PHP 中处理)
表:组列表
groupID groupName groupDesc
1 Standard Normal Access Level.
2 Limited Limited Access Level.
3 Medium Medium Access Level.
表:权限列表
permissionID permissionName permissionProtect permissionDesc
1 News 0 News section access.
2 Forums 0 Forums section access.
3 Contacts 0 Contact section access.
表:Group_Permission
groupID permissionID
1 1
1 2
1 3
2 1
3 1
3 2
【问题讨论】:
标签: sql sql-server select one-to-many