数据sql server

时间:2015-09-03 07:00:06

标签: c# asp.net sql-server

我需要找到一种方法来控制不同用户查看的数据。 所以我有五种类型的用户,具有typeId 1的用户可以查看所有内容,而具有typeid 3的用户可以查看部分数据,依此类推。

有任何建议我该怎么做?

使用if语句控制来自我的sql server本身的数据:

create procedure getAlldate(@typeid)
If @typeid=1 
Begin
select * from tblUsersDetails
End

还是有其他方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

  • 您可以先为X类型的用户创建X数据库用户角色。查看CREATE ROLE (Transact-SQL)

  • 然后使用ALTER ROLE(或sp_addrolemember但不推荐使用它)将用户添加到各自的角色

  • 您可以将对象的权限授予,拒绝或撤销这些用户角色。您将Table1上的Select授予RoleX,如下所示:

    grant select on Table1 to RoleX
    
  • 如果您只需要访问部分表格或仅访问某些列,则可以先创建view

    Create View View1 As
        Select col1, col2, col5, col10 
        From Table1
        Where col20 = 0
    
  • 最后,您可以将视图的权限授予RoleX

    grant select on View1 to RoleX