C# sql server数据的不同访问级别

C# sql server数据的不同访问级别,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我需要找到一种方法来控制不同用户查看的数据。 所以我有五种类型的用户,typeId为1的用户可以查看所有内容,而typeId为3的用户可以查看部分数据,依此类推 有什么建议我该怎么做 控制来自我的sql server本身的数据,使用if语句: create procedure getAlldate(@typeid) If @typeid=1 Begin select * from tblUsersDetails End 或者我还有别的办法吗? 您可以首先为X类用户创建X个数据库用户角色。看

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

有什么建议我该怎么做

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

create procedure getAlldate(@typeid)
If @typeid=1 
Begin
select * from tblUsersDetails
End
或者我还有别的办法吗?

  • 您可以首先为X类用户创建X个数据库用户角色。看

  • 然后,您可以使用(或sp_addrolemember)将用户添加到各自的角色中,但不推荐使用)

  • 您可以向这些用户角色授予、拒绝或撤销对对象的权限。您将表1中的Select授予劳力士,如下所示:

    grant select on Table1 to RoleX
    
  • 如果只需要授予对表的一部分或某些列的访问权限,可以首先创建:

  • 最后,您可以将查看权限授予劳力士

    grant select on View1 to RoleX
    

什么是“部分数据”?限制在行或列上?”“受限”用户只能访问有限数量的行还是有限数量的列?
grant select on View1 to RoleX