インスタンス名:SQLEXPRESS
インストール環境等は前回の記事(SQL ServerのRemoteアクセス構成1)を参照
1.「名前付きインスタンス」のリモート構成手順
名前付きインスタンスのリモート構成は以下の手順で行う。
- TCP/IPの有効化
- SQL Serverのサービス再起動
- TCP/IPのプロパティで動的ポートを使用可能にする
- ファイアウォールの受信の規則でUDP1434を許可
- ファイアウォールのアプリケーションルールの設定でSQL Serverの実体(Sqlservr.exe)に対して受信許可を設定する
- SQL Server Browserを有効化する
SQL Server構成マネージャーの「SQL Serverのプロトコル」の該当するSQL ServerについてTCP/IPを有効化する。(今回の例ではSQLEXPRESS)
TCP/IPの有効化/無効化を設定する場合は、該当するSQL Serverサービスを構成マネージャーから再起動する。
※Windowsの管理ツールのサービスから再起動しないこと!!
TCP/IPのプロパティ画面の「IPアドレス」にてIPALL(一番下)を表示し以下を設定する。
- TCPポート:空白
- TCP動的ポート:0
※動的ポートに0を指定することで動的ポートが使われる
※ここでTCPポートに1433を設定しないこと!!
今回のケースで名前付きインスタンスのTCP/IPの設定でTCPポート:1433を指定すると下記エラーが発生する。
多分、「規定のインスタンス」でTCP1433を使用するように構成していることが原因と思う。
3.ファイアウォールの設定(パケットルール)
名前付きインスタンスのリモート構成ではUDPポート:1434について受信の許可の設定が必要になる。
今回の場合はKaspersky インターネットセキュリティ 2019に対して設定を行う。 Windows Serverの場合は「セキュリティが強化されたWindowsファイアウォール」で同様の設定を行うこと。
※Kaspersky インターネットセキュリティ 2019 ファイアウォールの設定 設定→プロテクション→ファイアウォール→パケットルールの設定
パケットルール画面下部にある「追加ボタン」から以下のルールを追加する。
- 操作:許可
- 名前:
SQL Server UDP1434 Open - 通信方向:受信
- プロトコル:UDP
- リモートポート:空白
- ローカルポート:1434
- アドレス:
すべてのネットワークアドレス - ステータス:有効
UDP1434の許可設定が追加されている
4.ファイアウォールの設定(アプリケーションルール)
名前付きインスタンスのリモート構成ではパケットルール設定(UDP1434の受信許可)に加えてSQL Serverの実体に対してネットワークの受信許可を追加する。
※Kaspersky インターネットセキュリティ 2019 ファイアウォールの設定 設定→プロテクション→ファイアウォール→アプリケーションルールの設定
※アプリケーションルールの設定画面の右上「表示」を選択して「システムアプリケーションを非表示」のチェックを外す
画面右上の検索ウインドに「sql server windows」と入力して検索を行うと、
今回の例では「SQL Server Windows NT - 64Bit」が二つ表示される。
今回の例では同じ端末内に「既定のインスタンス」と「名前付きインスタンス」の二つのSQL Server (どちらも2017)をインストールしているため二つ表示される。
「SQL Server Windows NT - 64Bit」にマウスカーソルを合わせると実体の格納ディレクトリが表示される。
実体:Sqlservr.exe
SQLEXPRESS: 名前付きインスタンス
MSSQLSERVER:規定のインスタンス
SQL Server自体を「信頼するアプリケーション」として設定しているので、今回の例では追加の設定は無い(確認のみ)。
「信頼するアプリケーション」 → ネットワークが許可されている
信頼するアプリケーションでは無い場合は、ネットワークルールの許可の設定が必要。
5.SQL Server Browserの有効化
名前付きインスタンスのリモート構成ではファイアウォールの受信許可設定に加えてSQL Server Browserサービスの有効化が必要となる。(既定では無効)
SQL Server構成マネージャーのサービス画面からSQL Server Browserのプロパティを開く。
- プロパティのサービスタブの開始モードを「自動」に設定→適用
- サービス画面で開始を実行
※UDPポート:1434を通じてSqlservr.exe を管理するのがBrowser Serviceな感じ。
6.検証
同一ネットワークにある他端末からリモートで名前付きインスタンスに接続を行う。
- 接続文字:[Server IP]\[Instance Name]
- 認証モード:SQL Server認証(sa)
SSMSでテストクエリを実行して動作を確認した。
まとめ
今回真面目に調べたことで、今まで適当に構成していたことが分り反省…
SQL Server Browserの役割が分っていませんでした。
参考
SQL Server Express にリモート接続
MCP教科書 SQL Server 2012(試験番号70-462)
0 件のコメント:
コメントを投稿