SQL Server Express は小規模なシステム構築であれば十分使えるのですが、
デフォルトの状態ではクライアントから接続できません。
これを知らないと、結構ハマってしまうんですよ。
「サーバー上では問題なく接続できているのに、何故だ?!」と頭を抱え、
帰れなくなった新人SEさん(何年か前のぼくです)のために
SQL Server Express にクライアントから接続できるようにする3つの方法をご説明します!
SQL Server Express にクライアントから接続できるようにする3つの方法
クライアントから接続できるようにするには、
以下の3つの設定をすればOKです。
- TCP/IPプロトコルの有効化
- ポートの固定・開放
- SQL Server Browser サービスの有効化
たったこれだけのことなのですが、
MSDNの説明だけでは、ちょっと分かりにくいので、
図を交えてご説明します。
では早速、設定してみましょう!
(ファイアウォールの設定を変更するので、管理者権限のアカウントでログオンしておきましょう)
TCP/IPプロトコルの有効化
今回は「SQL Server 2014 Express」で説明します。
まずは、「すべてのプログラム」から、
「SQL Server 2014 構成マネージャー」を起動します。
「SQL Server ネットワークの構成」→「インスタンス名(今回はMSSQLSERVER)のプロトコル」を開きます。
「TCP/IP」を右クリックし、「有効化」をクリックします。
以下のようなメッセージが出ますので、「OK」をクリックします。
この段階では、サービスの再起動は必要ありません。
「TCP/IP」の状態が「有効」になっていることを確認してください。
ポートの固定・開放
続いて、SQL Server で使用するポートの固定と開放を行います。
「TCP/IP」を右クリックし、「プロパティ」をクリックします。
「IPアドレス」タブをクリックし、「IPALL」のTCPポートを指定します。
今回は「49172」に設定しました
先程と同じメッセージが出ますので、「OK」をクリックします。
「SQL Server のサービス」から、
「SQL Server(インスタンス名)」を右クリックし、再起動します。
以上で、ポートの固定は完了です。
続いて、ポートの開放を行いましょう。
コントロールパネルから、「Windows ファイアウォール」を開きます。
「詳細設定」をクリックします。
「受信の規則」をクリックし、「新しい規則」を開きます。
「TCP」「特定のローカルポート」を選択し、先ほど設定したポート番号を入力します。
「接続を許可する」を選択します。
「ドメイン」「プライベート」「パブリック」全てにチェックを付けます。
この規則の名前を入力し、完了をクリックします。
「SQL Server」と書いておかないと、後で何のポートを開放したのか分からなくなるので注意。
同様の手順で、UDPのポートも開放しておきましょう。
TCPとUDP、両方のポートが開放されたことを確認したら、画面を閉じてOKです。
SQL Server Browser サービスの有効化
最後に、SQL Server Browser サービスを有効化します。
「SQL Server のサービス」から、
「SQL Server Browser」を右クリックし、「プロパティ」を開きます。
「サービス」タブをクリックし、「開始モード」を「自動」に変更します。
コントロールパネルの「管理ツール」を開きます。
「サービス」を起動します。
サービスの中から「SQL Server Browser」を探して右クリックし、「開始」をクリックします。
最後に「SQL Server 構成マネージャー」に戻り、「SQL Server のサービス」から、
「SQL Server Browser」を右クリックし、開始します。
無事サービスが開始されたら、サーバーを再起動します。
再起動後、サービスから「SQL Server Browser」が開始されていることを確認しましょう。
以上で設定完了です。
上手くいかない場合は、どこかの設定を忘れているor間違えている可能性がありますので、
落ち着いて見直して下さい。
コメント
「サービス」タブをクリックし、「開始モード」を「自動」に変更しますのスクリーンショットと、
「サービス」を起動しますのスクリーンショットが逆ではないですか?
ずんどこべろんちょさん
ご指摘ありがとうございます。
大変遅ればせながら、スクリーンショットを修正しました。