sql server数据的不同访问级别
本文关键字:访问级别 server 数据 sql | 更新日期: 2023-09-27 18:10:55
我需要找到一种方法来控制不同用户查看的数据。我有五种类型的用户,typeId为1的用户可以查看所有内容,而typeId为3的用户可以查看部分数据等等。
有什么建议吗?
控制数据从我的sql服务器本身,有if语句:
create procedure getAlldate(@typeid)
If @typeid=1
Begin
select * from tblUsersDetails
End
或者有其他方法可以这样做吗?
-
您可以首先为X种类型的用户创建X个数据库用户角色。查看CREATE ROLE (Transact-SQL)
-
然后使用ALTER ROLE(或sp_addrolemember,但已弃用)将用户添加到各自的角色
-
您可以向这些用户角色授予、拒绝或撤销对象上的权限。在表1上授予RoleX Select权限,如下所示:
grant select on Table1 to RoleX
-
如果您只需要对表的一部分或部分列进行访问,您可以先创建一个视图:
Create View View1 As Select col1, col2, col5, col10 From Table1 Where col20 = 0
-
最后您可以将视图的权限授予RoleX
grant select on View1 to RoleX