如何隐藏我无权在Sql Server 2005 Management Studio中使用的所有数据库?

时间:2010-01-09 06:32:31

标签: sql-server-2005 user-interface

我必须访问共享环境中托管的一些客户数据库。在任何给定的客户实例上托管了许多数据库。因此,每次访问数据库时,我都必须滚动并搜索。

  1. 我希望能够将Management Studio配置为直接转到我想要为给定连接使用的数据库,并隐藏该连接/实例上的所有其他数据库。但我仍然希望能够在我可能正在使用的其他实例上查看数据库,即使用相同的对象资源管理器进行本地化。

  2. 如果不可能有任何理由为什么网络托管服务提供商会授予其客户查看任何数据库权限?我假设这就是为什么我可以看到所有其他的dbs?

  3. 如果我无法将Management Studio配置为按照(1)执行我想要的操作,那么我将向提供商发送电子邮件,并要求他们阻止我从“服务器”端看到它们。这对他们来说是否容易?如果他们撤销查看任何数据库权限那么那应该解决我的“问题”吧?但它会创造任何其他人吗?

2 个答案:

答案 0 :(得分:2)

您需要访问主数据库以实现您想要的结果。没有选项可以配置Sql Server管理Studio(SSMS)来执行您想要的操作。

所以(1)出局了。

(2)然而,只要您的服务提供商一起玩,就可以了。你是对的,他们必须

DENY VIEW ANY DATABASE TO youruseracount

将需要访问主数据库。但在他们这样做之前,他们必须将您的使用权设置为数据库的所有者。

sp_changedbowner 'youruseraccount'

所有这一切的副作用是

一个。您将无法在实例中看到您想要的任何其他数据库。

湾只有一个用户可以使用SSMS通过“仅查看我的Db”列表来管理您的数据库。这是因为只有一个用户可以是数据库所有者。

...

理查德

答案 1 :(得分:0)

2篇文章描述它(如果我复制/粘贴,真的没有意义)

OneTwo