SQL Server 2005 のインストール後にインストールされた SQL Server 2000 または SQL Server 7.0 のインスタンスに接続しようとすると、接続エラー メッセージが表示される場合がある

文書翻訳 文書翻訳
文書番号: 905618 - 対象製品
ベータ版情報
この資料では、マイクロソフトのベータ版製品について説明しています。この資料の情報は、この資料の発行時点のものであり、将来予告なしに変更することがあります。

このベータ版製品は、マイクロソフトの正規サポート対象外となっています。ベータ版のサポートについては、ベータ版製品に含まれるドキュメントを参照してください。または、ベータ版製品をダウンロードした Web サイトを参照してください。
重要 : この資料には、レジストリの編集方法が記載されています。万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。バックアップ、復元、および編集方法の詳細を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256986 Microsoft Windows レジストリの説明
すべて展開する | すべて折りたたむ

目次

現象

以下の条件に該当していると、接続エラー メッセージが表示される場合があります。
  • SQL Server 2005 をインストールした後に SQL Server 2000 または SQL Server 7.0 をインストールした。
  • SQL Server 2000 または SQL Server 7.0 により作成されたインスタンスに接続しようとした。
接続文字列にプロトコル固有の情報が含まれていない場合は、SQL Server Browser サービスの実行中であっても、この問題が発生します。

上記の操作では、プロトコル固有の情報が、サーバーから返される情報により異なります。たとえば、Sqlcmd ユーティリティ (Sqlcmd.exe) を使用してインスタンスに接続したときに、以下のエラー メッセージが表示される場合があります。
SQL ネットワーク インターフェイス: 指定された Server/Instance の位置を特定しているときにエラーが発生しました [xFFFFFFFF]。
Sqlcmd: エラー: Microsoft SQL Native Client: サーバーへの接続確立時にエラーが発生しました。接続先が SQL Server 2005 である場合は、既定の設定では SQL Server がリモート接続を許可していないことが原因である可能性があります。
Sqlcmd: エラー: Microsoft SQL Native Client: ログイン タイムアウトが時間切れになりました。

原因

SQL Server 2000 または SQL Server 7.0 のインスタンスに接続するときに、SQL Server Browser サービス (Sqlbrowser) は、Microsoft Windows レジストリから必要なプロトコル情報を取得して、クライアントに渡そうとします。したがって、SQL Server Browser サービスには、そのインスタンスの適切な Windows レジストリを読み込むために十分なアクセス許可が必要です。

SQL Server 2005 のセットアップ時に、SQL Server Browser サービスが必要なプロトコル情報を読み込めるよう、すべての既存インスタンスのレジストリ キーが変更されます。ただし、SQL Server 2005 をセットアップした後に SQL Server 2000 または SQL Server 7.0 のインスタンスをインストールすると、レジストリのアクセス許可が正しく設定されません。アクセス許可は、SQL Server Browser サービスのインストール時にのみ変更されるためです。具体的には、SQL Server Browser サービスのスタートアップ時のアカウントが Administrators アカウントでない場合は、このアカウントに、インスタンスの該当キーの読み取りに必要なアクセス許可がない可能性があります。

: SQL Server 2000 では、SQL Server サービスがサーバー接続のエンドポイントを識別します。SQL Server 2005 は、この機能の代わりに SQL Server Browser サービスを備えています。SQL Server 2000 を実行するコンピュータに SQL Server 2005 をインストールする場合は、SQL Server 2000 Service Pack 3 (SP3)、SQL Server 2000 SP3a、または SQL Server 2000 SP4 をインストールする必要があります。

回避策

警告 : レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。レジストリの変更は、自己の責任において行ってください。

この問題を回避するには、以下のいずれかの方法を使用します。

レジストリを修正して、特定のキーに読み取りアクセス許可を付与する

SQL Server 2005 のインストール後にインストールした SQL Server 2000 の各インスタンスについて、次の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に regedit と入力し、[OK] をクリックします。
  2. 次のレジストリ サブキーを見つけます。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstanceName
    このサブキーで、InstanceName は SQL Server 2000 のインスタンスの名前です。

    : デフォルト インスタンスとして SQL Server 2000 をインストールした場合のレジストリ サブキーは次のとおりです。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
  3. [編集] メニューの [アクセス許可] をクリックします。
  4. [追加] をクリックし、SQLServer2005SQLBrowserUser または SQLServer2005SQLBrowserUser$ComputerName と入力し、[OK] をクリックします。

    : 使用しているコンピュータによっては、グループ名の SQLServer2005SQLBrowserUser が SQLServer2005SQLBrowserUser$ComputerName である場合があります。このグループ名は [コンピュータの管理] の [ローカル ユーザーとグループ] にあります。この手順では、SQLServer2005SQLBrowserUser$ComputerName の ComputerName が使用しているコンピュータの名前です。
  5. このユーザー アカウントのアクセス許可の一覧で [読み取り] チェック ボックスをオンにし、[OK] をクリックします。
  6. レジストリ エディタを終了し、SQL Server Browser サービスを再起動します。
: アクセス許可は通常、子キーに継承されます。SQLServer2005SQLBrowserUser または SQLServer2005SQLBrowserUser$ComputerName に子キーがあり、アクセス許可が継承されない場合は、これらの子キーに明示的に読み取りアクセス許可を付与します。
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\MSSQLServer\CurrentVersion
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\MSSQLServer\SuperSocketNetLib
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\Cluster
: このサブキーで、InstanceName は SQL Server 2000 のインスタンスの名前です。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\SuperSocketNetLib
というレジストリ サブキーが継承されない場合は、このレジストリ サブキーの子キーを手動で修正する必要があります。

: SQL Server 7.0 には、名前付きインスタンスはありません。したがって、該当するレジストリ キーは、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
レジストリ サブキーから適切なアクセス許可を継承します。ただし、アクセス許可が継承されない場合は、手動でアクセス許可を設定する必要があります。

接続文字列で接続情報を明示的に指定する

クライアントから SQL Server 2000 または SQL Server 7.0 のインスタンスに接続するときは、接続文字列で接続情報を明示的に指定することができます。この場合、サーバーから返される情報に影響されない接続情報を指定します。たとえば、Sqlcmd ユーティリティの使用時には、以下のようなコマンドを使用してインスタンスに接続することができます。
sqlcmd ?S tcp:yourhost,1500

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

プロパティ

文書番号: 905618 - 最終更新日: 2005年12月19日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2005 Standard Edition Community Technology Preview
  • Microsoft SQL Server 2005 Developer Edition Community Technology Preview
  • Microsoft SQL Server 2005 Enterprise Edition Community Technology Preview
  • Microsoft SQL Server 2005 Express Edition Community Technology Preview
キーワード:?
kbprb KB905618
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com