sql-server – 使用权限SQL Server将数据库列表限制为一个

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

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

> MyDatabase
> YourDatabse
> PrivateDatabase
> ReallyPrivateDb

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

对于安全性,我们不希望用户看到除了映射到的数据库之外的任何数据库.

最佳答案
This blog讨论了隐藏SQL 2000和SQL 2005的DB的方法.

点赞