0

我在 SQL 2005 数据库中创建了 SQL 用户 ID、角色和架构。我在此架构下创建了一个 SQL 视图,该视图从 dbo 架构中的表中进行选择。但是,我不希望 SQL 用户能够从此表中进行选择。

例如:

CREATE VIEW [MySchema].[vwMyView]
AS
SELECT
    *
FROM
    dbo.MyTable

用户可以访问MySchema视图并且可以毫无问题地查询vwMyView。但是,他们也可以从 dbo.MyTable 中选择。

如何限制对dbo.MyTable的所有访问?如果我拒绝对 dbo 架构的 SELECT 权限,则用户无法从视图中进行选择。

4

1 回答 1

0
REVOKE select 
ON tablename
FROM {user_name} 

只是撤销 select 本身并不会撤销其他权限。

然后在视图上执行显式授权选择。不确定这是否可行,因为我从未尝试过这种方式,但值得一试。

于 2012-05-02T19:45:17.090 回答