SqlServer 2008 r2 中设置只给其它用户访问自己指定表或视图…

  • 在操作使用数据库的大部分时候,我们可能对权限之类的东西设置的很少,但是在某些对安全性有要求的时候,我们则需要限制某个用户访问数据库的权限,比如让某个用户只能看到属于其管理或只需要用到的某几张表,并对指定的表拥有有限的操作权限。*

图文向导设置步骤

1、以管理员身份登录数据库,新建一个新的登录用户。

mysql 数据库单个用户 操作记录 sql2008数据库单个用户_SqlServer数据库


2、将该用户需要访问的表或视图所在的数据库映射给该用户,使其能够访问该数据库(此时还没有给任何表、视图的访问权限其)。

mysql 数据库单个用户 操作记录 sql2008数据库单个用户_SqlServer数据库_02


3、以管理员身份给其他用户分配指定的表、视图或存储过程的操作权限。

mysql 数据库单个用户 操作记录 sql2008数据库单个用户_SqlServer数据库_03

4、分配完访问和操作的权限之后,使用新建的用户名进行登录之后,即可对管理员指定的数据库中的表或视图进行权限内的操作。

mysql 数据库单个用户 操作记录 sql2008数据库单个用户_数据库_04

  至此已经完成,我们可以该用户能访问的只有我们分配的数据库中的视图(或者表、存储过程)。自己动手试试吧。

代码实现步骤
1、以管理员用户身份登录并打开需要操作的数据库,新建查询,创建一个可访问指定数据库的权限角色

exec sp_addrole [ceshi1]

2、给创建的角色赋予查看指定的视图的权限,视图名为:dbo._UserBaseInfo,角色名为创建的角色 ceshi1

grant select on dbo._UserBaseInfo to ceshi1

3、添加只允许访问指定视图的用户;,用户名:ceshi1a 密码:1qaz!QAZ 默认的数据库:DT_HIS

exec sp_addlogin 'ceshi1a','1qaz!QAZ','DT_HIS'

4、将用户和角色进行绑定(即给用户赋予访问指定视图的权限) , ‘用户’,‘密码’,‘角色’

exec sp_adduser  'ceshi1a','1qaz!QAZ','ceshi1'

5、最后使用新创建的用户名、密码登录,可以看到该用户下面只有一个可访问和操作的视图。自己动手试试吧。

exec sp_addrole ceshi1
grant select on dbo._UserBaseInfo to ceshi1
exec sp_addlogin 'ceshi1a','1qaz!QAZ','DT_HIS'
exec sp_adduser  'ceshi1a','1qaz!QAZ','ceshi1'

mysql 数据库单个用户 操作记录 sql2008数据库单个用户_存储过程_05