LoginSignup
9
11

More than 3 years have passed since last update.

【備忘録】SQL Serverに接続できない場合の対処法

Last updated at Posted at 2019-09-25

先日SQL Serverを新たに導入したのですが、外部PCから接続できず苦戦しました。
その際に試したことを記録しておきます。
誰かの助けになれば。

現象と原因予想

DBサーバにSQL Serverをインストールし各種設定を行いました。しかしいざAPサーバからデータベース接続しようとしたところ、何度試しても接続に失敗してしまいます。

A5SQLで接続を試み、下記のメッセージを得ました。
Cannot connect to server on host 'ipadress' Connectiontimed out

原因の切り分けとして、まず同様の操作をDBサーバ内で行いました。
問題なく動作するため、サーバ間の接続(ファイアウォールあたり?)でコケているのかな、と予想しました。

まず試したこと

まずQiitaの他記事でまとめられているようなことを片っ端から試行/確認しました。
[以下 参考記事]
【TIPS】SQL Server Expressに接続できない
外部のSQL Serverに接続できないときの備忘録

一応書いておくと、確認したのは下記項目です。
・TCP/IP有効化・ポート設定
・Windowsファイアウォール設定
・SQL Server Browserの起動

しかし繋がらない。。。

他に試したこと

DB設定

リモートサーバ接続の許可

MSSMSにて
インスタンスを右クリック
>「サーバのプロパティ」の左側メニュー「接続」をクリック
>「このサーバへのリモート接続を許可する」にチェック

アクセス権限の設定・確認

私の場合はローカルで接続できたのでここちは問題ないかなと思いつつ一応確認。

①インスタンスの権限
MSSMSにて確認
インスタンスをクリック
>「セキュリティ」>「ログイン」>該当ユーザで右クリック
「ログインのプロパティ」にて
>「ユーザマッピング」操作したいテーブルにチェックがついているか?ロールは適切か?
(接続確認がしたいのでとりあえず「db_owner」にしておく)
>「セキュリティ保護可能なリソース」で「SQLの接続」など必要項目にチェックがついているか?

②データベース権限の確認
インスタンスをクリック
>「データベース」>操作したいデータベース>「セキュリティ」>「ユーザー」>該当ユーザで右クリック
>「メンバーシップ」で「db_owner」にチェックがついているか?

プログラムの許可

私の場合はこれが原因でした。

Windowsファイアウォールで下記プログラムへの接続を許可する必要があります。
%ProgramFiles%\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn\sqlservr.exe

コントロールパネル>システムとセキュリティ>Windowsファイアウォール
>詳細設定>受信の規則>新しい規則
・規則の種類 ... 「プログラム」
・プログラム... 「このプログラムのパス」にパス入力
・操作... 「接続を許可する」
・プロファイル...とりあえず全てに適用
・名前 ... 好きな名前を入力

これでAPサーバから接続できるようになりました。
よかったよかった。

9
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11