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
ここではExpress版をダウンロード。デフォルト値でインストールしました。
「基本(B)」クリック。
「実行する」クリック。
「Install」クリック。
「閉じる」クリック。
SSMSは後でインストールしますので、「はい」で終了。
これで、SQLServerのインストール完了。
3―2.SSMSのインストール
下記サイトからSSMSをダウンロード
https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
「Install」クリック。
「Restart」クリック。
再起動し、SSMSのインストール完了。
3―3.Node-RED
3―3-1.Node.jsのインストール
下記サイトからNode.jsをダウンロード
https://nodejs.org/ja/
ここでは、”12.18.1 LTS”をインストールしました。
3―3-2.Node-REDのインストール
「Next」クリック。
"I accept the terms in the License Agreement "チェック。
「Next」クリック。
「Next」クリック。
「Next」クリック。
「Next」クリック。
「Install」クリック。
「Finish」クリック。
Node.jsのインストール完了。
3―3-2.Node-REDのインストール
コマンドプロンプトから下記コマンド実行
> npm install -g --unsafe-perm 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の画面から行います。
「バーガーメニュー」⇒「パレットの管理」。
「ノードを検索」タグ。
「ノードを検索」タグ。
「追加」クリック。
"MSSQL"ノードが追加されました。
4.SQLServerの設定
リモートからsaユーザでアクセスできるように、下記4点の設定を行います。
(1)リモートからの接続許可確認
(2)認証モードの変更。
(3)saの有効化
(4)TCP/IPの有効化
(5)ポートの設定
4-1.リモートからの接続許可の確認
「SSMS」での操作です。
「Connections」⇒「Allow Remote connection to this server」がチェックされているか確認。チェックなければチェックして「OK」クリック。
4-2.認証モードの変更
SQLServer認証モードは、Windows認証とSQL Server認証があります。
デフォルトではWindows認証のみの設定です。
ここでは、両方のモードで認証できるように設定しました。
尚、マイクロソフト社はSQL Server認証を推奨していませんので、本番業務では使用しない
方が良いです。
「SSMS」での操作です。
「Security」⇒「SQL Server and Windows Authentication node」を選択⇒「OK」。
4-3.saの有効化
saはSQLServerをインストールすると作成される、最高権限をもつユーザーです。
管理者アカウントのためデフォルトでは無効となっています。本番業務では別のアカウントを作成し、利用することをお勧めします。ここでは、テスト目的ですので、saアカウントを使用しました。
「SSMS」での操作です。
「Security」⇒「Login」⇒「sa」⇒「Properties」。
「Status」⇒「Login」のEnableを選択⇒「OK」
ついでにsaのパスワードも変更しました。
「General」⇒「Password」パスワードの変更⇒「OK」
ここでは、単純ですが “P@ssw0rd” にしました。
4-4.TCP/IPの有効化
「SQL Server 2019 構成マネージャー」での操作です。
「SQLServer構成マネージャー(ローカル)」⇒「SQLServerネットワークの構成」⇒「SQLEXPRESSのプロトコル」
「TCP/IP」右クリック⇒「有効にする」。
4-5.ポートの設定
デフォルトでは動的ポートが設定されていますので、静的ポート1433に変更します。
「SQL Server 2019 構成マネージャー」での操作です。
「SQL Server 2019 構成マネージャー(ローカル)」⇒「SQLServerネットワークの構成」⇒「SQLEXPRESSのプロトコル」
「TCP/IP」右クリック⇒「プロパティ」⇒「IPアドレス」タグ
“IPALL”の”TCPポート“:「1433」
“IPALL”の”TCP動的ポート“:ブランク に設定。
4-6.SQLServerサービスの再起動
「SQL Server 2019 構成マネージャー」での操作です。
ここまでの設定ですべて完了です。SQLServerサービスを再起動します。
4-7.テスト用DBとテーブルの準備
DB:TestDB
Tabel:TestTable
Field: Field01 int
Field: Field02 nchar(5)
Field: Field03 nchar(8)
で作成します。
4-7-1.テスト用DBとテーブルの作成
「Databese」右クリック⇒「NewDatabase」
“Database name”:「TestDB」⇒「OK」。
「Database」⇒「Table」⇒「New」⇒「Table…」。
4-7-2.データの登録
データ登録のSQL文
「INSERT INTO TestDB.dbo.TestTable VALUES(123,'abcde','12345678');」
を登録後、「Execute」クリック。
4-6.SQLCMDで接続確認
コマンドプロンプトより下記コマンドを実行し、結果レコードが表示されれば正常です。
>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
5.Node-RedでSQLServerへのアクセス実行
5-1.Node-Red側での設定
簡単ですが、実行するとMSSQLノードに記述した、SQL文
「SELECT * FROM TestTable;」を実行し、結果をデバッグウィンドウに表示します。
5-1-1.SQLノードの設定
[{"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レコードの検索結果がデバッグウィンドウで確認できましたので、正常に動作しています。
7.おわりに
丁寧に環境設定を記載したため、情報が増えてしましましたが、Node-RedでSQLServerへのアクセス設定は大変簡単にできました。