システムの一部を公開したい?それならリンク サーバーはどうでしょう

のえる のえる 2020.02.27

システムの種類や形が異なるものとの連携の際、データを共有したいことは結構あります。

 

しかし、公開できない領域にあったり、接続が出来なかったりなど、様々な問題でうまく繋がらなくて困った経験をされた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 / Guitarist