クライアントマシンからSQLServerにODBC接続したときに、なかなか接続できず、いろいろ調べました。

調べて設定したことなどをまとめておきます。

1~3の設定を行いました。

設定は基本的にサーバーで行う設定です。

1.SQL Serverのネットワーク設定

1.[スタートメニュー]-[すべてのプログラム]-[Microsoft SQL Server 2008 R2]-[構成ツール]-[SQL Server 構成マネージャー]を起動。

2.[SQL Server 構成マネージャー(ローカル)]-[SQL Server ネットワークの構成]-[【インスタンス名】のプロトコル]をクリック。

3.右のエリアにプロトコル名の一覧が表示されるので、[TCP/IP]を右クリックし、有効化を行う。

2.SQL Server Browserの設定

※SQL Server Browserの説明は後述。

1.[スタートメニュー]-[すべてのプログラム]-[Microsoft SQL Server 2008 R2]-[構成ツール]-[SQL Server 構成マネージャー]を起動。

2.[SQL Server 構成マネージャー(ローカル)]-[SQL Server のサービス]をクリック。

3.右のエリアにサービスの一覧が表示されるので、[SQL Server Browser]を右クリックし、プロパティを開く。

4.[ログオン]タブのサービスの状態のところに[開始]ボタンがあるので、開始する。

5.[サービス]タブの開始モードを[自動]に変更。

SQL Server Browserとは

SQL Serverの視点 – 「SQL Server Browser」とは?:ITproより引用

SQL Server Browserは、デフォルトでは有効化されていない。
SQL Server Browserの主な目的は、ネットワーク上にあるシステムにおけるSQL Serverデータベース・エンジンの名前付きインスタンスの場所を特定することだ。
SQL Server Expressは、SQL Server 2005の完全なサブセットなので、1つのコンピュータ上で複数の名前付きデータベース・インスタンスをサポートする。
SQL Server Browserが重要なのは、このためだ。
各SQL Serverインスタンスは、それぞれのポート番号で待機し、クライアントからの個別の要求に応答する。
SQL Serverシステムを開始すると、ポート番号が名前付きデータベース・インスタンスに動的に割り当てられる。
割り当ては動的に行われるため、システムを再起動すると、これらのポート番号は変更されることがある。
SQL Server Browserの役割は、レジストリに問い合わせ、すべてのアクティブなSQL Serverの名前付きインスタンスの場所を特定し、クライアント・アプリケーションに報告することだ。
デフォルトでは、SQL Server BrowserはUDP 1434ポートを使ってネットワークにあるクライアントにアクティブなSQL Serverデータベース・インスタンスを報告する。

3.Windowsファイアウォールの設定

1.[コントロールパネル]-[Windowsファイアウォール]を起動。

2.[Windowsファイアウォールを介したプログラムまたは機能を許可する]をクリック。

3.許可されたプログラムの一覧が表示されるので、[別のプログラムの許可]ボタンをクリック。

4.プログラムの追加ウィンドウが表示されるので、[参照]から以下のプログラムを参照し、追加。
C:\Program Files\Microsoft SQL Server\MSSQL10_50.【インスタンス名】\MSSQL\Binn\sqlservr.exe

5.許可されたプログラムの一覧に[SQL Server Windows NT]が表示されたことを確認して、[OK]。

6.[管理ツール]-[セキュリティが強化されたWindowsファイアウォール]を起動。

7.[受信の規則]-[新しい規則]をクリック。

8.[規則の種類]で[ポート]を選択し、次へ。

9.[プロトコルおよびポート]で[UDP]を選択し、特定のローカルポートに[1434]を設定し、次へ。

10.[操作]で[接続を許可する]を選択し、次へ。

11.[プロファイル]で全てのチェックをONにし、次へ。

12.[名前]で、わかりやすい名前をつけて、完了。

13.[送信の規則]-[新しい規則]をクリック。

14.「8~12」の手順を行い、完了。

それでも繋がらない場合・・・その1

SQL Serverがリモート接続を許可しているか確認する。(デフォルトでは許可されているはず)

1.[スタートメニュー]-[すべてのプログラム]-[Microsoft SQL Server 2008 R2]-[構成ツール]-[SQL Server Management Studio]を起動。

2.[オブジェクトエクスプローラー]-[(local)\【インタンス名】]を右クリックし、プロパティを開く。

3.[ページの選択]-[接続]をクリック。

4.右のエリアに[接続]の設定が表示されるので、[このサーバーへのリモート接続を許可する]がチェックされているか確認する。(デフォルトではチェックが入っているはず)

5.「4」でチェックがない場合、チェックして[OK]

それでも繋がらない場合・・・その2

クライアントのWindowsファイアウォールの設定で、UDP 1434ポートを解放してみる。

以上、SQLServerにODBC接続できない時に設定したこと、試してみたことでした。

コメントを残す

メールアドレスが公開されることはありません。