当前位置: 代码迷 >> Sql Server >> 新建一个用户,让他只能看到某一个视图(View),如何设置
  详细解决方案

新建一个用户,让他只能看到某一个视图(View),如何设置

热度:39   发布时间:2016-04-24 09:31:34.0
新建一个用户,让他只能看到某一个视图(View),怎么设置?

新建一个用户,让他只能看到某一个视图(View),怎么设置?

如果做不到“只能看到指定视图”,最好能做到“对指定表或视图只有查询的权限”。

谢谢!
------解决思路----------------------
在指定权限时只对视图授权

USE [master]
GO
CREATE LOGIN [Test] WITH PASSWORD=N'1', DEFAULT_DATABASE=[DB], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE [DB]
GO
CREATE USER [Test] FOR LOGIN [Test]
GO
use [DB]
GO
GRANT SELECT ON [dbo].[视图名] TO [Test]
GO


------解决思路----------------------

exec sp_addlogin '用户名','密码','默认数据库名'                          --添加只允许访问指定表的用户
exec sp_grantdbaccess '用户名'                                         --添加到数据库
GRANT SELECT , INSERT , UPDATE , DELETE ON 表名 TO [用户名]        --分配整表权限
GRANT SELECT , UPDATE ON 表名(列名,列名) TO [用户名]                         --分配权限到具体的列


------解决思路----------------------
1.先建一个登陆账户
2.再在你视图所在库建一个数据库账户
关联到第一步所建的登陆账户,并加入到数据库的data_reader数据库角色

3.可以做到访问视图而不能访问表的,那么对你不希望的别人访问的表右击,输入你第二步所建的数据库用户名,然后勾选上deny_datareader
参考如下图:


--你先试试,有问题再问
  相关解决方案