2018年12月22日土曜日

SQL ServerのRemoteアクセス構成2

前回の登録の続きでSQL Serverの「名前付きインスタンス」についてリモート構成を行う。
インスタンス名:SQLEXPRESS
インストール環境等は前回の記事(SQL ServerのRemoteアクセス構成1)を参照

1.「名前付きインスタンス」のリモート構成手順
名前付きインスタンスのリモート構成は以下の手順で行う。
  1. TCP/IPの有効化 
  2. SQL Serverのサービス再起動
  3. TCP/IPのプロパティで動的ポートを使用可能にする
  4. ファイアウォールの受信の規則でUDP1434を許可
  5. ファイアウォールのアプリケーションルールの設定でSQL Serverの実体(Sqlservr.exe)に対して受信許可を設定する
  6. SQL Server Browserを有効化する
2.「名前付きインスタンス」:TCP/IPの設定
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 件のコメント:

コメントを投稿