【问题标题】:SQL Server - Hide databases and limit user to see one View object onlySQL Server - 隐藏数据库并限制用户只能看到一个视图对象
【发布时间】:2015-01-27 08:38:03
【问题描述】:

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

  1. 在其他数据库中只能看到 1 个数据库(比如说 TestDB)
  2. 在 TestDB 的其他视图和表中只能看到 1 个视图(比如说 TestView)

所以要隐藏所有其他数据库,我执行以下命令:

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

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

【问题讨论】:

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


    【解决方案1】:

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

      DENY VIEW DEFINITION ON NonTestView TO TestUser
    

    【讨论】:

    • 那么我需要对所有的视图和表格一一做吗?如果有的话,思想可能有更有效的方法。
    • 您可以使用 [INFORMATION_SCHEMA].[VIEWS] 创建语句。像这样:从 [INFORMATION_SCHEMA].[VIEWS] 中选择 'DENY VIEW DEFINITION ON' + TABLE_NAME + ' TO TestUser'。只需删除 TestView 的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 2011-01-13
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多