默认情况下,如果您通过有权访问10个数据库中的1个的帐户连接到远程SQL Server.您仍将在对象资源管理器中看到所有其他数据库,显然由于您无法实际查询它们的权限,但您可以看到它们的名称.
我听说有一种方法可以禁用这种行为,但我一直无法找到答案,有人知道怎么做吗?举个例子,我有一个名为MyDbServer的SQL Server,它有4个数据库,
> MyDatabase
> YourDatabse
> PrivateDatabase
> ReallyPrivateDb
如果您通过仅具有“YourDatabse”权限的帐户进行连接,您仍会看到所有其他数据库的列表,则查询尝试将授予“select”权限被拒绝或类似错误.
对于安全性,我们不希望用户看到除了映射到的数据库之外的任何数据库.
最佳答案
This blog讨论了隐藏SQL 2000和SQL 2005的DB的方法.