Note: 本記事は、2018年11月時点の内容です。
【Q】SQL Server ExpressにLocalからは接続できるが、同一ネットワーク上の別マシンから接続できない。なんで?
- なお、Azure上の仮想マシンにインターネット越しに接続できない方は、↓こちらをおすすめします。
Azure での SQL Server 仮想マシンへの接続
Qiita : 【備忘録】SQLServerの名前付きインスタンスに外から接続したい
【A】名前付きインスタンスだとポートが1433ではなく、動的ポートになる。それに応じてやることがいくつかあるので注意。
-
名前付きインスタンスでポートを1433に固定することができるが、アクセス時にポート付きでアクセスすることになる
-
ポート付きでのアクセスだと困るケースがあり、動的ポートのままポートなしでのアクセスを可能とする手順を以降に紹介する。
-
ポイントは、SQL Server Configuration Managerとファイヤーウォール設定。
作業の手順
- 事前設定確認
- SQL Server Configuration Managerの起動
- TCP/IPの有効化
- Firewall設定の変更
- SQL Server Browserの起動
- SQL Serverの再起動
【手順1】事前設定確認
-
SQL Server Management Studio
にて、以下の設定を済ませておく-
SQL Server混合認証モード
に変更 -
リモート接続を許可する
をONにする
-
【手順2】SQL Server Configuration Managerの起動
- 対象のマシンにログインして、
SQL Server Configuration Manager
を起動する
【手順3】TCP/IPの有効化
- SQL Server Configuration ManagerでTCP/IP機能を有効化(Enable)する
- 左ツリービューで[SQL Server Network Configuration] > [Protocols for XXX]を選択
- 右の一覧の[TCP/IP]を右クリック。
Enable
を選択
【手順4】Firewall設定の変更
-
Windows Firewallの詳細設定を開く
- [コントロールパネル] > [Windows Defender ファイヤーウォール] > [詳細設定]
-
SQL Server Expressを許可する設定を行う(動的ポートなので、プログラム指定で行う)
-
新しい規則
をクリック -
プログラム
を選択して、次へ
を押下 -
このプログラムのパス
を選択して、sqlserver.exe
を選択し、(インストールしたパスのbinnを探す)次へ
を押下 -
接続を許可する
を選択して、、次へ
を押下 -
ドメイン
プライベート
パブリック
をチェックして、次へ
を押下 -
名前
を入力して、完了
を押下(名前は、MS_SQLなど任意)
-
-
SQL Server Browserを許可する設定を行う(Port1434のUDPを許可する)
-
新しい規則
をクリック -
ポート
を選択して、次へ
を押下 -
UDP
を選択して、特定のローカルポート
に1434
を入力。次へ
を押下 -
接続を許可する
を選択して、、次へ
を押下 -
ドメイン
プライベート
パブリック
をチェックして、次へ
を押下 -
名前
を入力して、完了
を押下(名前は、MS_SQL_BROWSERなど任意)
-
【手順5】SQL Server Browserの起動
-
SQL Server Configuration Manager
からSQL Server Browser
が起動していない場合は、起動する
【手順6】SQL Serverの再起動
-
SQL Server Configuration Manager
からSQL Server
を再起動する