システムの一部を公開したい?それならリンク サーバーはどうでしょう
システムの種類や形が異なるものとの連携の際、データを共有したいことは結構あります。
しかし、公開できない領域にあったり、接続が出来なかったりなど、様々な問題でうまく繋がらなくて困った経験をされたSEの方は多いのではないでしょうか?
今回はかなり業務寄りの内容ですが、困ってるSEさんの助けになるような記事を書いていこうと思います。
問題の構成
今回想定する問題の構成を簡単に図にしてみました。
それぞれのシステムでDBを保持していることも、まったくもっていない場合もありますが、大まかにやりたいことは伝わりますでしょうか?
連携したいシステム が 元となるデータを扱うシステム からデータを取得して何か処理をする、というものです。
この時、連携したいシステムにDBがある場合、複写 or ミラーリングなども考慮に入るとは思いますが、同期処理がうまくいかなかったり、そもそも同期処理を作らなければならなかったりするなど、手間が多くなります。
しかし、「元となるデータを扱うシステム」は基幹だったりすることも多く、外部からアクセスできることができない場合もあり、一部だけアクセスさせるのはちょっと。。。 といった懸念も多いです。
リンク サーバーを使おう
そんな時、SQL Serverには素敵な機能があります。
そう リンク サーバー という機能です。
昔からAccessなどを使用されている方にはなじみがあるかもしれませんね
一言で言うと そう 実態は無いけど中身のを操作することができるサーバー です。
設定方法や詳細については下記のMicrosoft公式ドキュメントに記載されています。
リンクサーバー – Microsoft SQLドキュメント
リンク サーバーの作成 – Microsoft SQLドキュメント
このリンクサーバーを使うことで、システム構成図はこのような形になります。
これにより、下記のような利点があります。
- 「元となるデータを扱うシステム」は一切手を入れる必要がない
- SQL Serverのみを公開すれば良い
- SQL Serverと連携できるシステム(ODBC対応)なら何でもつながる
さらに、アクセスできるテーブルを制限したり、データの表現を変更したい場合、シノニムやViewを使用することで、外部連携をするシステムへの制限を加えることもできます。
さいごに
今回はかなりSE寄りな話でしたがいかがでしたか?
既存技術ですが、こういった情報はなかなか表に出てきません。
少しでも世のSEの助けになれば幸いです。
- おすすめ記事
POPULAR
のえる
Full-stack Developer