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

或者有其他方法可以这样做吗?

sql server数据的不同访问级别

  • 您可以首先为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