将数据库列表限制为具有 SQL Server 权限的数据库列表
-
03-07-2019 - |
题
默认情况下,如果您通过有权访问 10 个数据库中的 1 个数据库的帐户连接到远程 SQL Server。您仍然会在对象资源管理器中看到所有其他数据库,显然由于权限的原因您无法实际查询它们,但您可以看到它们的名称。
我听说有一种方法可以禁用此行为,但我一直找不到答案,有人知道如何做到这一点吗?举个例子,我有一个名为 MyDbServer 的 SQL Server,它有 4 个数据库,
- 我的数据库
- 你的数据库
- 私有数据库
- 真正的私人数据库
如果您通过仅具有“YourDatabse”权限的帐户进行连接,您仍然会看到所有其他数据库的列表,尝试查询将授予“选择”权限被拒绝或类似错误。
出于安全原因,我们不希望用户看到除他们映射到的数据库之外的任何数据库。
解决方案
这个博客 讨论隐藏 SQL 2000 和 SQL 2005 数据库的方法。
其他提示
在让我的客户与已确定的资源进行斗争之后,我做了一些测试并创建了 这篇博文 有关如何使其发挥作用的更多背景信息和说明。
其不足之处在于:
use master
go
deny VIEW any DATABASE to login1
go
其中,login1 是您要限制的登录帐户。
不隶属于 StackOverflow