4

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

我听说有一种方法可以禁用此行为,但我一直无法找到答案,有人知道该怎么做吗?举个例子,我有一个名为 MyDbServer 的 SQL Server,它有 4 个数据库,

  1. 我的数据库
  2. 你的数据库
  3. 私有数据库
  4. 真正的私人数据库

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

出于安全考虑,我们不希望用户看到他们映射到的数据库以外的任何数据库。

4

3 回答 3

1

这篇博客讨论了隐藏 SQL 2000 和 SQL 2005 数据库的方法。

于 2008-10-14T14:13:18.930 回答
1

在让我的客户与确定的资源斗争后,我进行了一些测试并创建了这篇博客文章,其中包含更多上下文和关于如何使其工作的说明。

于 2008-10-15T21:19:38.350 回答
0

它的短处是:

use master
go
deny VIEW any DATABASE to login1
go

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

于 2008-10-14T14:17:39.500 回答