【问题标题】:Can't see *all* databases in a remote SQL Server instance在远程 SQL Server 实例中看不到 *all* 数据库
【发布时间】:2023-03-14 04:15:01
【问题描述】:

我可以连接到远程 SQL 2008 Server 实例,但我无法使用 SQL Server 2008 Management Studio 查看实例中的所有数据库。

我怀疑我的问题与远程实例中并非所有数据库都具有相同版本有关。例如,我通过从 2005 年备份并将其导入 2008 年,将 2005 年的数据库“升级”到 2008 年。

当我意识到这不是我在其他PC上可以看到的数据库之一时,我注意到导入的兼容级别仍然是2005,所以我将其更改为2008。仍然看不到数据库.

在该远程服务器上,实例节点名为“sql2008”,并且是“版本 10”。

当我从本地 PC 连接到 sql2008 远程实例时,连接在本地显示为“SQL Server 版本 8.0”实例。

我怀疑在本地,我只看到在远程 2008 实例中以某种方式存在但尚未升级的数据库。

我想我不知道什么是升级的数据库,我不知道如何连接才能查看所有数据库,即使这需要源 PC 的多个连接。

本地计算机是 Windows 7 Ultimate。远程主机是 Windows XP Pro。

Related - 无法看到 SQL Server 2008 实例。

更新:

这是我在使用 Mgt Studio 的远程服务器上看到的,即一个 SQL 2008 实例和一个 2000 实例。

当我登录到 SQL 2008 实例并执行以下查询时

选择 @@VERSION 作为版本, SERVERPROPERTY('ComputerNamePhysicalNetBIOS') 作为 ComputerNamePhysicalNetBIOS, SERVERPROPERTY('ServerName') 作为服务器名, SERVERPROPERTY('MachineName') 作为 MachineName

结果再次确认上面显示的版本为 10 的 2008b 实例是 2008 实例:

    Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)   Mar 29 2009 10:27:29   Copyright (c) 1988-2008 Microsoft Corporation  Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3) 

USPL-DOKMANC2   USPL-DOKMANC2\SQL2008B  USPL-DOKMANC2

好的,现在从我的本地机器,我使用 SQL Mgt Studio 尝试连接到 USPL-DOKMANC2(远程机器)。

alt text http://content.screencast.com/users/Dokmanc/folders/Jing/media/ec146f56-5651-4968-9286-82508dc5d3b2/2010-05-22_1426.png

...我连接到没有端口的远程我收到此错误:

alt text http://content.screencast.com/users/Dokmanc/folders/Jing/media/d3c5bc46-c286-4708-a2f5-282fc76124cb/2010-05-22_1427.png

但是如果我输入默认端口,我就可以连接。请注意,我刚刚添加的 SQL2008 连接显示为版本“8”(SQL 2000)。 alt text http://content.screencast.com/users/Dokmanc/folders/Jing/media/ea80af5e-4a1f-4417-9327-0b76476b4d14/2010-05-22_1426.png

我似乎再次连接到我的 SQL2000 实例,即使我在连接参数中指定连接到 SQL2008b(一个 2008 实例)。

我似乎无法在 uspl-dokmanc2 上看到我的远程 2008 实例。我不断在 sql2008b 下显示我的 2000 个默认实例数据库。

第二次更新:

根据下面的 excellenf 反馈,当尝试连接并从指定的端口确定实例时,SQL 很可能会忽略实例的名称。现在我只需要知道 SQL2008b 实例正在运行的端口。我希望 SQL Mgt Config 会告诉我。端口为空白。这是否意味着默认端口? 2008 会是什么,而不是我已经有另一个 2008 实例,所以如果它们都必须有单独的端口,那么正常的 2008 默认可能不是它。

这是我在 2008b 实例的 SQL 管理配置中看到的内容。未提及端口:

【问题讨论】:

  • 您使用的 SQL 或 Windows 登录是否对所有数据库都有权限?
  • 是的,应该。我正在使用 sa(管理员)帐户登录。
  • 我相信您通过建议 SQL Server 使用指定端口来识别实例而不是我在连接参数中指定的端口来接近问题。我想运行 SQL Serfver Config Mgr 并检查 2008 实例的端口,但我收到错误消息“无法连接到 WMI 提供程序。您没有权限(怀疑)或主机无法访问(可能)。是有其他方法可以通过查询告诉端口吗?或者您知道如何解决错误以便我可以运行配置管理器?
  • 好的。我修复了我的 SQL Config Mgr 问题(如果有兴趣,请参阅下面的链接),现在我试图找出它告诉我端口 2008b 实例正在运行的位置。越来越近了... (msmvps.com/blogs/martinpoon/archive/2009/11/27/…)
  • 您是否尝试使用主机的 IP 而不是机器名?这为我解决了这个问题。

标签: sql-server


【解决方案1】:

远程实例 (8.0) 是 SQL Server 2000 实例

没有与可见性或权限相关的“数据库版本”这样的概念:给定服务器上的每个数据库(包括版本、SP 和修补程序)都处于某个内部版本。这就是您无法将 SQL Server 2008 数据库恢复或附加到 SQL Server 2005 的原因

我会运行它以获取完整的详细信息

SELECT
   @@VERSION,
   SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),
   SERVERPROPERTY('ServerName'),
   SERVERPROPERTY('MachineName')

例如,您可能有一个客户端别名,这意味着您连接到错误的服务器。

另外,你必须明确地DENY ANY VIEW DATABASE TO public 来“隐藏”数据库

【讨论】:

  • 回复:“远程实例 (8.0) 是 SQL Server 2000 实例”。不,我不相信它是。我确定我没有连接到错误的服务器。我不是想将 2008 db 附加到 SQL Server 2005 上,而是将 2005 db 恢复到 2008 实例中。我会立即发布我的问题的更新,希望能够澄清。泰。
【解决方案2】:

您确定您的 2008 实例使用 1433 端口吗?在大多数情况下,MS SQL 似乎忽略了实例的名称并连接到给定的端口。使用配置管理器检查端口。

此外,请检查远程计算机上的 SQL 浏览器是否可用 - 您必须将 UDP 上的 1434 添加到防火墙设置中。当然,请记住确保 SQL 浏览器正在您的服务器上运行。见:http://support.microsoft.com/kb/914277

【讨论】:

  • 我认为你在做某事。我只需要知道 2008b 实例的端口,因为这似乎是确定要连接到哪个实例的关键。我在 2008 年的 SQL Config Mgr 中。它在哪里? content.screencast.com/users/Dokmanc/folders/Jing/media/…
  • 您在正确的对话框中 - 只需向下滚动即可。您可能还想从动态端口更改为静态端口(只需将 TCP 动态端口中的任何值复制到 TCP 端口)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 2017-08-14
  • 1970-01-01
相关资源
最近更新 更多