SqlServer 2008 r2 中设置只给其它用户访问自己指定表或视图…
- 在操作使用数据库的大部分时候,我们可能对权限之类的东西设置的很少,但是在某些对安全性有要求的时候,我们则需要限制某个用户访问数据库的权限,比如让某个用户只能看到属于其管理或只需要用到的某几张表,并对指定的表拥有有限的操作权限。*
图文向导设置步骤
1、以管理员身份登录数据库,新建一个新的登录用户。
2、将该用户需要访问的表或视图所在的数据库映射给该用户,使其能够访问该数据库(此时还没有给任何表、视图的访问权限其)。
3、以管理员身份给其他用户分配指定的表、视图或存储过程的操作权限。
4、分配完访问和操作的权限之后,使用新建的用户名进行登录之后,即可对管理员指定的数据库中的表或视图进行权限内的操作。
至此已经完成,我们可以该用户能访问的只有我们分配的数据库中的视图(或者表、存储过程)。自己动手试试吧。
代码实现步骤
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'