我需要找到一种方法来控制不同用户查看的数据。 所以我有五种类型的用户,具有typeId 1的用户可以查看所有内容,而具有typeid 3的用户可以查看部分数据,依此类推。
有任何建议我该怎么做?
使用if语句控制来自我的sql server本身的数据:
create procedure getAlldate(@typeid)
If @typeid=1
Begin
select * from tblUsersDetails
End
还是有其他方法可以做到这一点吗?
答案 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