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を再起動する