代码之家  ›  专栏  ›  技术社区  ›  Mitchel Sellers

将数据库列表限制为具有SQL Server权限的列表

  •  4
  • Mitchel Sellers  · 技术社区  · 16 年前

    默认情况下,如果您通过一个可以访问10个数据库中1个的帐户连接到远程SQL Server。您仍然可以在对象资源管理器中看到所有其他数据库,显然由于权限的原因,您无法实际查询它们,但您可以看到它们的名称。

    我听说有一种方法可以禁用这种行为,但我一直找不到答案,有人知道怎么做吗?举个例子,我有一个名为mydbserver的SQL服务器,它有4个数据库,

    1. MyBasic
    2. 你的数据库
    3. 私有ATATABASE
    4. 完全私有化

    如果您通过一个只有“yourdatabase”权限的帐户连接,您仍将看到所有其他数据库的列表,尝试查询将授予“select”权限被拒绝或类似错误。

    对于安全资源,我们不希望用户看到他们映射到的数据库以外的任何其他数据库。

    3 回复  |  直到 9 年前
        1
  •  1
  •   Tom H zenazn    16 年前

    This blog 讨论隐藏SQL 2000和SQL 2005数据库的方法。

        2
  •  1
  •   Mitchel Sellers    16 年前

    在我的客户与确定的资源发生冲突之后,我做了一些测试并创建了 this blog posting 有更多的上下文和关于如何使这个工作的说明。

        3
  •  0
  •   ChrisLively    16 年前

    其缺点是:

    use master
    go
    deny VIEW any DATABASE to login1
    go
    

    其中login1是要限制的登录帐户。

    推荐文章