別PCに立てたSQLServerへの接続で困ったこと3選

こちらは、Mavs Advent Calendar2023の9日目の記事です!
🎄🎄🎄
こんにちは、タロウです。
開発PCから同じネットワーク上に立てたSQLServerへ接続する際にハマったので、気を付けるポイント3つ紹介します!同じようにハマる方が少しでも少なくなれば嬉しいです。
⚠️すべてWindowsマシン側の設定です!
前提情報
- 開発PCはMacbook、WindowsにSQLServerを構築
- 同じネットワーク内に接続
- Macbookのローカル環境から繋がらず困ってしまった
外部端末・環境にアクセスできない問題はよく遭遇し、原因が様々なのでその度に頭を悩ませます・・
ここから3つに分けてヒントとなる確認点をご紹介します。
①ログインの認証方法を確認する
DBへアクセスする際にID/Passwodでアクセスしますが、SQLServer側の認証方法設定で許容していないとアクセスできませんでした。
通常SQLServerのインストール時に、インストーラーで選択式になりますが何も考えず全てOK(デフォルト)としてしまうとWindows認証のみとなり、ID/Passwodでのアクセスができない状態となります。
SQL Server Management Studio(SSMS)、Transact-SQLを使用した方法がありますが、SSMSを使用した設定方法をベースとしています。
解決方法
インストーラー実行段階では、何回か聞かれる認証方法でWindows認証+SQL Server 認証モードを選択します。
インストール完了後も変更が可能なので、全てOKとしてしまった方は下図設定画面から認証方法を変更します。

切り替えると、再起動するけど良いか?と聞かれるのでOKを押しましょう。
②ネットワーク設定
SQLServerのデフォルトポートが固定となっておらず、開発マシンからだとアクセスできていない事象があり、デフォルトでは0となっているので手動でポートを設定しました。
解決方法
ネットワーク設定のTCP/IPの設定を見直します。
設定項目中のローカルIPに対してデフォルトだと動的ポートとなっているので、固定を選択し1433を指定します。

外部からアクセスする際のポート指定に影響するため、接続するためにはこの設定が必要だったようです。
また、併せてWindowsマシン側のファイアウォールの設定も確認しておきましょう。
それぞれ有効となっているか、ローカルポートが合っているかを確認します。

③SQLServerBrowserの起動
上記2つの対応をしてもなかなか接続できず、SQLServer単体では外部からアクセスできないようでした。
解決方法
SQLServerインストール時に一緒にインストールされるSQLServerBrowserを起動する必要がありました。SQLServer2012以降、外部マシンからアクセスする場合はSQLServerBrowserも起動しないといけないようです。

デフォルト設定だと手動起動になるためWindowsの再起動など行う場合は毎回起動が必要です。
(頻繁に使用する場合は自動起動をオススメします)

参考
Microsoft Build – SQLServerリリースノート
サーバーの認証モードの変更
さいごに
接続で困り設定を見直したポイントをtips的に紹介しました。
普段開発を行っていると、”別PCに立てたデータベースへアクセスする”ことは必ずと言っていいほど出くわします。
使用しているDBやOSによって設定方法が違いますが、疑うポイントは似ているのかな・・とも感じています。今回の事象、解消方法が疑うポイント(ヒント)の1つになれば嬉しいです!