.NET TIPS

SQL Server 2005でネットワーク接続を有効にするには?

デジタルアドバンテージ 遠藤 孝信
2007/01/19

 SQL Server 2005(Express Editionを含む)では、セキュリティ強化のために初期状態ではネットワーク経由でのアクセス(ネットワーク接続あるいはリモート接続と呼ばれる)ができないようになっている。本稿ではこれを有効にするための以下の3つの手順について解説する。

(1)SQL Server 2005のネットワーク構成でネットワーク接続を有効にする
(2)SQL Server Browserサービスを有効にする
(3)Windowsファイアウォールの設定を行う(Windows XP SP2の場合)

 (1)と(2)については、[スタート]メニューの[Microsoft SQL Server 2005]−[構成ツール]から実行できる「SQL Server セキュリティ構成」あるいは「SQL Server Configuration Manager」で設定可能だ。

 以降ではSQL Server Configuration Managerを利用し、SQL Server 2005 Express Editionで「TCP/IP」によるネットワーク接続を有効にする方法について述べる。

(1)SQL Server 2005のネットワークの構成でネットワーク接続を有効にする

 まずSQL Server Configuration Managerを起動する。SQL Server 2005 Express Editionのみがインストールされている場合には、これは次のような画面となっているはずだ。


図1 Express Edition利用時のSQL Server Configuration Manager
[スタート]メニューの[Microsoft SQL Server 2005]−[構成ツール]から実行する。「SQLEXPRESS」というインスタンス名でSQL Serverサービスが実行されているのを確認できる。

 TCP/IP接続を有効にするには、まずこの画面の左側のツリーで[SQL Server 2005 ネットワークの構成]−[SQLEXPRESSのプロトコル]を選択する。これにより、次の画面のように右側に利用可能なプロトコルが一覧される。デフォルトでは「共有メモリ」のみが有効になっている(この設定により同一マシン内でのみSQL Serverに接続が可能)。

 ここで「TCP/IP」の項目を右クリックし、[有効化]を実行する。


図2 TCP/IP接続の有効化
「TCP/IP」の項目を右クリックし[有効化]を実行して、TCP/IPを有効にする。

 この設定を反映するにはSQL Server 2005の再起動が必要だ。これには左側のツリーで[SQL Server 2005のサービス]を選択し、次の画面のように「SQL Server (SQLEXPRESS)」の項目を右クリックし[再起動]を実行する。


図3 SQL Serverサービスの再起動
「SQL Server (SQLEXPRESS)」の項目を右クリックし[再起動]を実行する。

■SQL Server 2005が使用するポート番号

 ここでSQL Server 2005が使用するポート番号について触れておこう。SQL Server 2005(Express Edition以外の製品)で「既定のインスタンス」を使用してTCP/IPで接続する場合には、ポート番号は1433番が固定的に利用される(ポート番号は変更可能)。

 しかしそれ以外のインスタンスの場合には、ポート番号はインスタンス開始時に動的に決められる。SQL Server 2005 Express Editionでは「SQLEXPRESS」という名前のインスタンスが使用され、ポート番号は動的である。

 各インスタンスが使用するポート番号を確認するには、先ほどの図2の画面で「TCP/IP」の項目をダブルクリックするか、右クリックしてメニューより[プロパティ]を選択し[TCP/IPのプロパティ]ダイアログを開く。ここで[IPアドレス]タブを開くと、一番下の[TCP動的ポート]の項目から現在利用されているポート番号を確認できる。


図4 Express Editionを使用している場合の[TCP/IPのプロパティ]ダイアログ
使用されるポート番号は動的に決められる。この例では2204番が使用されているのが分かる。[TCPポート]でポート番号を指定して、固定のポート番号を利用することもできる。
  TCP動的ポート

 ちなみにExpress Edition以外で既定のインスタンスを使用している場合には、この画面は次のようになり、ポート番号として固定の1433番が利用されているのが分かる。


図5 既定のインスタンスを使用している場合の[TCP/IPのプロパティ]ダイアログ
既定のインスタンスでは、使用されるポートは1433番で固定。
  TCPポート

 SQL Server 2005が使用するポート番号が動的である場合には、外部から接続する際にインスタンス名からポート番号を知るための仕組みが必要となる。これを担うのが「SQL Server Browserサービス」である。既定のインスタンス以外を利用している場合には、このサービスも有効にする必要がある。

 なお、SQL Server 2005 Express Editionでも図4の画面で[TCPポート]にポート番号を指定すればポート番号を固定でき、この場合にはSQL Server Browserサービスは不要となる。

(2)SQL Server Browserサービスを有効にする

 既定ではSQL Server Browserサービスは無効になっている。SQL Server Browserサービスを有効にするには、まず図1のSQL Server Configuration Managerの画面で、現在停止状態となっている「SQL Server Browser」の項目をダブルクリックするか、右クリックしてメニューから[プロパティ]を実行し、[SQL Server Browserのプロパティ]ダイアログを開く。

 次に[サービス]タブを開き、次の画面のように、[開始モード]を「自動」に設定する。そしてこの設定を反映するために[適用]ボタンをクリックする。


図6 [SQL Server Browserのプロパティ]ダイアログの[サービス]タブ
SQL Server Browserサービスが自動で開始するように[開始モード]で「自動」を選択し、[適用]ボタンをクリックする。

 次にSQL Server Browserサービスを開始するために、[ログオン]タブに切り替えて[開始]ボタンをクリックする。


図7 [SQL Server Browserのプロパティ]ダイアログの[ログオン]タブ
画面左下の[開始]ボタンをクリックして、SQL Server Browserサービスを開始する。

 以上でSQL Server 2005についての設定は完了だ。

(3)Windowsファイアウォールの設定を行う(Windows XP SP2の場合)

 Windows XP SP2の環境では、SQL ServerサービスとSQL Server Browserサービスに外部からアクセスできるように、Windowsファイアウォールの設定を変更する必要がある。

 SQL Server 2005 Express Editionでは、SQL Serverサービスが使用するポート番号が動的であるため、ファイアウォールの例外項目としては、ポート番号ではなく、プログラム(EXEファイル)のパスを設定しておくとポート番号が変化しても対応できる。

 SQL Serverサービスのプログラムは、デフォルトで次のようなパスとなる(CドライブにSQL Server 2005 Express Editionをインストールした場合)。

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\ sqlservr.exe
SQL Serverサービスのプログラムのパス(既定の場合)

 このプログラムのパスは、図1の画面で「SQL Server (SQLEXPRESS)」の項目をダブルクリックしてそのプロパティを開き、[サービス]タブの[バイナリ パス]の項目で確認できる。


図8 [SQL Server (SQLEXPRESS)のプロパティ]ダイアログの[サービス]タブ
[バイナリ パス]の項目にはSQL Serverサービスを実行するためのコマンドが記述されており、ここからファイアウォールの設定に必要なプログラムのパスを知ることができる。なお、ここではEドライブにSQL Server 2005 Express Editionをインストールしたため、パスはEドライブのものになっている。
  SQL Server 2005のプログラムのパス

 SQL Server BowserサービスについてはUDPポートの1434番を固定的に使用するので、プログラムのパスとポート番号のどちらでもファイアウォールの例外を設定できる。

 プログラムのパスによりファイアウォールを設定する場合には、そのパスは既定では次のようになっている。

C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe
SQL Server Bowserサービスのプログラムのパス(既定の場合)

 このパスもSQL Serverサービスと同様に、[SQL Server Browserのプロパティ]ダイアログの[サービス]タブ(図6)の[バイナリ パス]の項目で確認できる。End of Article

カテゴリ:データベース 処理対象:SQL Server 2005

この記事と関連性の高い別の.NET TIPS
SQL Server 2005 Express Editionに発行されたSQL文をトレースするには?
[ASP.NET]Express Edition以外のSQL Serverでフォーム認証を利用するには?
手軽にSQL Serverのデータベースをコピーするには?
[ASP.NET]セッション情報をSQL Server上で管理するには?
[ASP.NET]SQL Serverモードのセッション管理で情報を永続化するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間