名前付きパイプ サーバー ネットワーク ライブラリを使用するように構成されている、Windows XP Service Pack 2 を実行するコンピュータ上の SQL Server のインスタンスに接続できないことがある

現象

SQL Server のインスタンスに接続できないことがあります。また、以下のいずれかのエラー メッセージが表示されることがあります。


エラー メッセージ 1

[Named Pipes]SQL Server が存在しないか、アクセスが拒否されました。

[Named Pipes]ConnectionOpen (Connect()).


エラー メッセージ 2

サーバーに接続できません。<SQL Server instance name>


サーバー : メッセージ 17、レベル 16、状態 1

[Microsoft][ODBC SQL Server Driver][Named Pipes]SQL Server が存在しないか、アクセスが拒否されました。

エラー メッセージ 3

<SQL Server instance name> に接続できません。
この動作は、次のいずれかの操作を実行した場合に発生します。
  • Microsoft Windows XP Service Pack 2 を実行しているコンピュータにインストールされている SQL Server のインスタンスに接続しようとしました。
  • 名前付きパイプ サーバー ネットワーク ライブラリのみをリッスンするように構成された SQL Server のインスタンスに接続しようとしました。

原因

Microsoft Windows XP Service Pack 2 を実行しているコンピュータでは、Windows ファイアウォールがデフォルトで有効になります。これにより、ポートは Windows ファイアウォールによって閉じられます。たとえば、ファイルとプリンタの共有に使用されるポート 445 は、インターネット上のコンピュータから使用中のコンピュータのファイル共有やプリンタ共有に接続されないようにするために Windows ファイアウォールによって閉じられます。


SQL Server が、NetBIOS セッション上で名前付きパイプを使用して受信方向のクライアント接続をリッスンするように構成されていると、SQL Server はファイルとプリンタの共有と同様に TCP ポート 445 を使用して通信を行います。このため、SQL Server に接続しようとする SQL Server クライアントで、「現象」に記載されているエラー メッセージが表示されます。

解決方法

この問題を解決するには、TCP ポート 445 を明示的に有効にする必要があります。これを行うには、以下のいずれかの手順を実行します。
  • ネットワーク接続の設定を変更することによって TCP ポート 445 を有効にする

    この作業を行うには、以下の手順を実行します。
    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
    2. [ファイル名を指定して実行] ダイアログ ボックスで、[名前] ボックスに Firewall.cpl と入力し、[OK] をクリックします。
    3. [Windows ファイアウォール] ダイアログ ボックスの [詳細設定] タブをクリックします。
    4. [ネットワーク接続の設定] のネットワーク接続をクリックし、[設定] をクリックします。
    5. [詳細設定] ダイアログ ボックスの [サービス] タブをクリックし、[追加] をクリックします。
    6. [サービス設定] ダイアログ ボックスで、以下のように値を設定し、[OK] を 3 回クリックします。

      プロパティ

      サービスの説明
      名前付きパイプを使用する SQL Server
      ネットワークでこのサービスをホストしているコンピュータの名前または IP アドレス (例 : 192.168.0.12)
      The current IP address of the computer.
      このサービスの外部ポート番号
      445
      このサービスの内部ポート番号
      445

      : [サービス設定] ダイアログ ボックスで、[TCP] がオンになっていることを確認します。
  • ファイルとプリンタの共有を有効にすることによって TCP ポート 445 を有効にする

    この作業を行うには、以下の手順を実行します。
    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
    2. [ファイル名を指定して実行] ダイアログ ボックスで、[名前] ボックスに Firewall.cpl と入力し、[OK] をクリックします。
    3. [Windows ファイアウォール] ダイアログ ボックスの [例外] タブをクリックします。
    4. [プログラムおよびサービス] ボックスの [ファイルとプリンタの共有] チェック ボックスをオンにし、[編集] をクリックします。
    5. [サービスの編集] ダイアログ ボックスで、[TCP 445] チェック ボックスをオンにし、[OK] を 2 回クリックします。

回避策

TCP/IP ソケット ネットワーク ライブラリを使用することによって、この問題を回避することができます。TCP/IP ソケット ライブラリを使用する SQL Server が実行されているコンピュータの別名を作成するか、デフォルトで有効になっている唯一のプロトコルとして TCP/IP を使用することができます。TCP/IP ソケット ライブラリを使用する別名を SQL Server に追加するには、以下の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックし、cliconfg と入力し、[OK] をクリックします。
  2. [SQL クライアント設定ユーティリティ] ダイアログ ボックスで、[別名] タブをクリックし、[追加] をクリックします。
  3. [ネットワーク ライブラリ設定の追加] ダイアログ ボックスで、[ネットワーク ライブラリ] の [TCP/IP] をクリックします。
  4. SQL Server を実行しているコンピュータの IP アドレスまたはコンピュータ名を [サーバー別名] ボックスに入力し、[OK] を 2 回クリックします。

状況

この動作は仕様です。

関連情報

インターネット ファイアウォールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

298804 インターネット ファイアウォールによってインターネットの参照やファイルの共有ができなくなる
308127 Windows XP のインターネット接続ファイアウォールで手動でポートを開く方法


これらのエラー メッセージの他の原因についての情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

328306 エラー メッセージ "SQL Server が存在しないか、アクセスが拒否されました" の原因


Windows XP Service Pack 2 および SQL Server 2000 の構成方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

841249 Windows XP Service Pack 2 (SP2) を SQL Server と共に使用するように構成する方法
プロパティ

文書番号:839269 - 最終更新日: 2008/07/10 - リビジョン: 1

フィードバック