SQL Server - 隐藏数据库并限制用户仅查看一个View对象

时间:2015-01-27 08:38:04

标签: sql sql-server database view sql-server-2012

根据标题,我想在SQL Server 2012中创建一个用户:

  1. 只能在其他数据库中看到1个数据库(让我们说TestDB)
  2. 只能在TestDB的其他视图和表中看到1个视图(让我们说TestView)
  3. 为了隐藏所有其他数据库,我执行以下命令:

    USE master;
    DENY VIEW ANY DATABASE TO TestUser;
    Use TestDB;
    ALTER AUTHORIZATION ON DATABASE::TestDB TO TestUser;
    

    现在,我如何限制TestUser只能看到TestView(拒绝其他表和视图)?

1 个答案:

答案 0 :(得分:0)

您必须在除TestView之外的所有视图上设置DENY VIEW DEFINITION。

  DENY VIEW DEFINITION ON NonTestView TO TestUser