3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Node-REDでMS SQLServerへのアクセス設定

1. はじめに

Node-REDをから、SQL Server 2019 EXPRESS へのアクセス設定を、環境構築から実行までをまとめた備忘録です。

2. 環境

・Windows Server 2016
    コンピュータ名:MMTEST02
    パブリックIP:162.133.96.103/28
    プライベートIP:10.212.181.166/26
・SQL Server 2019 EXPRESS (以降SQLServerと略します)
    インスタンス名:SQLEXPRESS(デフォルト値)
・SQL Server management Studio 18 (以降SSMSと略します)
・Node-RED
・node-red-contrib-mssql-plus
    Node-REDからSQLServerへのアクセス用ノード

3. 環境のセットアップ

3―1.SQLServerのインストール

    下記サイトからEXPRESSをダウンロード
    https://www.microsoft.com/ja-jp/sql-server/sql-server-downloads
    01.png
    ここではExpress版をダウンロード。デフォルト値でインストールしました。
    02.png
    「基本(B)」クリック。
    03.png
    「実行する」クリック。
    04.png
    「Install」クリック。
    05.png
    「閉じる」クリック。
    06.png
SSMSは後でインストールしますので、「はい」で終了。
    これで、SQLServerのインストール完了。

3―2.SSMSのインストール

    下記サイトからSSMSをダウンロード
    https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
    07.png
    「Install」クリック。
    08.png
    「Restart」クリック。
    再起動し、SSMSのインストール完了。

3―3.Node-RED

3―3-1.Node.jsのインストール

    下記サイトからNode.jsをダウンロード
    https://nodejs.org/ja/
    09.png
    ここでは、”12.18.1 LTS”をインストールしました。

3―3-2.Node-REDのインストール

    10.png
    「Next」クリック。
    11.png
    "I accept the terms in the License Agreement "チェック。
    「Next」クリック。
    12.png
    「Next」クリック。
    13.png
    「Next」クリック。
    14.png
    「Next」クリック。
    15.png
    「Install」クリック。
    16.png
    「Finish」クリック。
    Node.jsのインストール完了。

3―3-2.Node-REDのインストール

   コマンドプロンプトから下記コマンド実行

Node-Redのインストール
> npm install -g --unsafe-perm node-red

   実行は、コマンドプロンプトから下記コマンド

Node-Redの実行
> node-red

    停止する際は、コマンドプロンプトにて、Ctrl+C

Node-RED画面を表示するには、ブラウザーから下記URLとポート番号1180を入力
 ※URLのアドレスはお使いのサーバアドレスにより変わります。
 同一ホストで動かす場合、http://127.0.0.1:1880/

3―4.node-red-contrib-mssql-plusのインストール

    インストールは、Node-REDの画面から行います。
    17.png
    「バーガーメニュー」⇒「パレットの管理」。
    18.png
    「ノードを検索」タグ。
    19.png
    「ノードを検索」タグ。
    20.png
    「追加」クリック。
    21.png
    "MSSQL"ノードが追加されました。

4.SQLServerの設定

   リモートからsaユーザでアクセスできるように、下記4点の設定を行います。
      (1)リモートからの接続許可確認
      (2)認証モードの変更。
      (3)saの有効化
      (4)TCP/IPの有効化
      (5)ポートの設定

4-1.リモートからの接続許可の確認

    「SSMS」での操作です。

    22.png
    コンピュータの箇所を右クリック⇒「Properties」。

    23.png
    「Connections」⇒「Allow Remote connection to this server」がチェックされているか確認。チェックなければチェックして「OK」クリック。

4-2.認証モードの変更

    SQLServer認証モードは、Windows認証とSQL Server認証があります。
    デフォルトではWindows認証のみの設定です。
    ここでは、両方のモードで認証できるように設定しました。
    尚、マイクロソフト社はSQL Server認証を推奨していませんので、本番業務では使用しない
方が良いです。
    「SSMS」での操作です。

    24.png
    コンピュータの箇所を右クリック⇒「Properties」。

    25.png    
    「Security」⇒「SQL Server and Windows Authentication node」を選択⇒「OK」。

    後ほどSQLServerを再起動します。
    26.png    
    「OK」。

4-3.saの有効化
    saはSQLServerをインストールすると作成される、最高権限をもつユーザーです。
    管理者アカウントのためデフォルトでは無効となっています。本番業務では別のアカウントを作成し、利用することをお勧めします。ここでは、テスト目的ですので、saアカウントを使用しました。
    「SSMS」での操作です。

    27.png    
    「Security」⇒「Login」⇒「sa」⇒「Properties」。

    28.png    
    「Status」⇒「Login」のEnableを選択⇒「OK」
    ついでにsaのパスワードも変更しました。

    29.png    
    「General」⇒「Password」パスワードの変更⇒「OK」
    ここでは、単純ですが “P@ssw0rd” にしました。

4-4.TCP/IPの有効化

    「SQL Server 2019 構成マネージャー」での操作です。

    30.png    
    「SQLServer構成マネージャー(ローカル)」⇒「SQLServerネットワークの構成」⇒「SQLEXPRESSのプロトコル」
    「TCP/IP」右クリック⇒「有効にする」。

    31.png    
    「OK」クリック。

4-5.ポートの設定

    デフォルトでは動的ポートが設定されていますので、静的ポート1433に変更します。
    「SQL Server 2019 構成マネージャー」での操作です。

    43.png
    「SQL Server 2019 構成マネージャー(ローカル)」⇒「SQLServerネットワークの構成」⇒「SQLEXPRESSのプロトコル」
     「TCP/IP」右クリック⇒「プロパティ」⇒「IPアドレス」タグ
     “IPALL”の”TCPポート“:「1433」
     “IPALL”の”TCP動的ポート“:ブランク  に設定。

4-6.SQLServerサービスの再起動

    「SQL Server 2019 構成マネージャー」での操作です。
    ここまでの設定ですべて完了です。SQLServerサービスを再起動します。
    32.png

4-7.テスト用DBとテーブルの準備

    DB:TestDB
    Tabel:TestTable
      Field: Field01 int
      Field: Field02 nchar(5)
      Field: Field03 nchar(8)
                   で作成します。
    34.png

4-7-1.テスト用DBとテーブルの作成

    35.png
    「Databese」右クリック⇒「NewDatabase」
    “Database name”:「TestDB」⇒「OK」。

    36.png
    「Database」⇒「Table」⇒「New」⇒「Table…」。

    37.png
    フィールド情報を設定したらタグの「✖」で終了。

    38.png
    「Yes」クリック。

    39.png
    テーブル名:"TestTable"入力⇒「OK」クリック。

4-7-2.データの登録

    40.png
    「New Query」クリック。

    41.png
    データ登録のSQL文
    「INSERT INTO TestDB.dbo.TestTable VALUES(123,'abcde','12345678');」
    を登録後、「Execute」クリック。

    とりあえず2レコード登録しました。
    42.png

4-6.SQLCMDで接続確認

      コマンドプロンプトより下記コマンドを実行し、結果レコードが表示されれば正常です。

SQL文
>sqlcmd -S MMTEST02W2016\SQLEXPRESS,1433 -U sa -P P@ssw0rd

    sqlcmdプロンプトで下記コマンドを実行して、登録レコードを確認します。

確認
1> SELECT * FROM TestDB.dbo.TestTable;
2> go
Field01     Field02 Field03
----------- ------- --------
        123 abcde   12345678
        456 fghij   98765432

(2 行処理されました)
1> exit

    44.png

5.Node-RedでSQLServerへのアクセス実行

5-1.Node-Red側での設定

    簡単ですが、実行するとMSSQLノードに記述した、SQL文
    「SELECT * FROM TestTable;」を実行し、結果をデバッグウィンドウに表示します。
    45.png

5-1-1.SQLノードの設定

    "MSSQL"ノードをクリックして設定します。
    46.png
    47.png

フロー
[{"id":"a2c945c1.c5ca98","type":"MSSQL","z":"f3c54f34.6c99f","mssqlCN":"dc0514db.ad0138","name":"","query":"SELECT * FROM TestTable;","outField":"payload","returnType":0,"throwErrors":1,"x":340,"y":140,"wires":[["d0580bd3.4b3f28"]]},{"id":"dc0514db.ad0138","type":"MSSQL-CN","z":"","tdsVersion":"7_4","name":"","server":"10.212.181.166","port":"1433","encyption":false,"database":"TestDB","useUTC":false,"connectTimeout":"4000","requestTimeout":"5000","cancelTimeout":"5000","pool":"5","parseJSON":false}]

6.Node-RedでSQLServerへのアクセス実行結果

    2レコードの検索結果がデバッグウィンドウで確認できましたので、正常に動作しています。
    48.png

7.おわりに

丁寧に環境設定を記載したため、情報が増えてしましましたが、Node-RedでSQLServerへのアクセス設定は大変簡単にできました。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
3
Help us understand the problem. What are the problem?