【问题标题】:How to grant select rights on views in SQL Server 2000?如何在 SQL Server 2000 中授予对视图的选择权限?
【发布时间】:2011-07-02 10:25:50
【问题描述】:

我想授予一个用户对 SQL Server 2000 数据库的只读访问权限。我已将它们置于 db_datareader 角色中,它们可以很好地从表中选择,但是当它们尝试从视图中选择时,总是返回 0 行(视图在以 db_owner 身份运行时确实返回行)。

我如何才能授予该用户读取视图的访问权限,同时仍确保他们无法写入数据库?

【问题讨论】:

    标签: sql-server sql-server-2000 roles


    【解决方案1】:

    GRANT SELECT ON [viewname] TO [user or role_name]

    应该传播到视图中引用的所有对象

    【讨论】:

      【解决方案2】:

      如果他们得到零行,他们就拥有视图的权限。如果他们没有权利,他们会得到一个错误。

      视图中的一些代码正在过滤,例如这个快速示例:

      WHERE SUSER_SNAME() = 'dbo' 
      

      db_datareader on MSDN,我的大胆。对于 SQL Server 2005。

      db_datareader 固定数据库角色的成员可以对数据库中的任何表或视图运行 SELECT 语句。

      对于SQL Server 2000,它表示“从所有用户表中读取所有数据”。这略有不同。我一直认为这意味着表和视图,但我没有 SQL Server 2000 框可供检查

      【讨论】:

        猜你喜欢
        • 2011-09-07
        • 2017-07-06
        • 1970-01-01
        • 2011-08-24
        • 2010-11-01
        • 2011-03-25
        • 2010-09-26
        • 2014-06-25
        • 2013-02-13
        相关资源
        最近更新 更多