如何为登录用户建立权限?

时间:2018-05-22 19:23:11

标签: sql sql-server-2008 login permissions sql-merge

我的系统具有不同的用户级别取决于创建帐户时分配的内容。因此,有四个不同的级别1,2,3和4.第一级具有完全访问权限,然后下面的每个级别缩小到数据访问。因此,一旦用户登录,我应该从我的权限表中获取记录。一个帐户在权限表中可以有多个记录。这是一个例子:

AccountID   UserName AccessLevel  AccessType State   City  Building
FB3064A7    jfakey        S            F       05     NULL   NULL
FB3064A7    jfakey        S            F       07     NULL   NULL

您可以看到AccessLevel列可以包含地区R,州S,城市C或建筑B。如果用户已分配区域访问权限,则只应有一条记录。如果存在任何其他访问级别(S,C或B),则用户可以拥有多个记录。以上示例具有州级别。分配给该帐户的状态有两种,我的查询将返回两行。我想知道我应该在两个单独的查询中拆分它还是坚持一次查询并合并行?我想知道什么会更有效,因为这是登录页面有很多点击。以下是我的查询示例:

SELECT A.AccountID, A.UserName,
    P.AccessLevel, P.AccessType, P.State, P.City, P.Building
FROM Accounts AS A WITH (NOLOCK)
    INNER JOIN Permissions AS P WITH (NOLOCK)
        ON A.AccountID = P.AccountID 
WHERE UserName = 'jfakey'

上面的查询是我现在拥有的,并返回两行。如果有人建议什么是最好的方法,请告诉我。

0 个答案:

没有答案