只授予视图权限

3
我在数据库中有一个用户,我想授予他只读取一个视图的权限,不允许访问其他任何表格或内容。
请问如何实现这个需求?
谢谢!
附注:我正在使用 MS SQL Server 2005。
3个回答

7
USE DB1;
GRANT SELECT ON OBJECT:: View1 TO JohnDoe;
GO

请参考GRANT对象权限来了解授予权限的其他示例。

我已经完成了这个。但是,对于底层对象,我仍然收到“拒绝对对象的SELECT权限”的错误提示。登录a是Public角色的成员,并且对该视图具有Select权限。我认为当授予视图权限时,不需要添加底层对象的权限? - MrEdmundo
请查看链接“授予对象权限”,并确保您拥有管理员权限。 - TStamper

2

试试这个:

GRANT SELECT ON whatever_your_view_is_called TO bob_or_whatever_his_name_is

两个问题: 新用户没有访问数据库中任何对象的权限吗?其他用户能够访问新视图吗?我希望只有新用户可以访问它。 - rpf
1
默认情况下,除了“数据库所有者(dbo)”之外,没有人可以访问任何内容,除非您作为dbo明确授予访问权限。 - marc_s

0

使用企业管理器 UI 或使用其他人发布的 SQL 代码,这个操作相当简单。

我想要补充的一点是,您要避免向 Public 角色分配任何对象的权限,因为每添加一个新用户,他们都会自动成为该角色的成员,这样您以后可能会锁定该对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接