
リンクサーバーはMicrosoft SQL Serverの強力な機能で、他のODBC準拠のデータベースとの通信を可能にします。この機能により、SQL Serverは別のSQL Serverインスタンス内のテーブルや、OracleなどのL別のデータベース製品のテーブルを含むTransact-SQLステートメントを実行できます。SQL Serverの外部からデータにアクセスし、エンタープライズ全体の異種データソースに対してフェデレーテッドクエリ・更新・コマンド・トランザクションを発行できることが、リンクサーバーの利点の一部です。
リンクサーバーのセットアップの効果を保証するには、特定の設定に細心の注意を払うことが不可欠です。これには、リモートデータソースの定義とサーバー名の割り当て・認証設定の構成・リモートサーバーのログインに関連するセキュリティコンテキストの理解が含まれます。また、潜在的なパフォーマンス問題を避けるために適切にリンクサーバーを使用することも重要です。
次のセクションでは、これらの重要な側面を考慮しながら、SQL Serverリンクサーバーの作成と設定について詳しく説明します。
リンクサーバーとは?
Microsoft SQL Server内のリンクサーバーは、SQL Serverインスタンスと外部データソースの間の接続を確立します。この外部ソースは以下のいずれかです。
主なメリット:
統合データアクセス:プライマリSQL Serverデータベースの一部であるかのように、さまざまなソースのデータをクエリ・操作します。これによりプラットフォームをまたいだデータ分析と意思決定が簡素化されます。
分散トランザクション:複数のデータベースにまたがるトランザクションを実行し、操作全体でデータの整合性を維持します。
パフォーマンスの向上(特定のケース):一部のシナリオでは、リンクサーバーはすべてのデータをローカルサーバーに取り込むのではなく、処理をリモートデータソースにプッシュすることでクエリパフォーマンスを最適化できます。
潜在的なデメリット:
セキュリティの考慮事項:リンクサーバーは潜在的な攻撃対象を増やします。認証とセキュリティ設定の慎重な構成が不可欠です。
パフォーマンスオーバーヘッド:不適切に構築されたクエリや設定の悪いリンクサーバーは、パフォーマンスを向上させるどころか低下させる可能性があります。
複雑さ:リンクサーバーの管理とトラブルシューティングは、データベース管理タスクの複雑さを増す可能性があります。
リンクサーバーの使用場面
リンクサーバーは以下のような場合にソリューションを提供します。
複雑なデータレプリケーションやETLプロセスなしに複数のデータベースのデータを統合する場合
異なるシステムに分散したデータを含むクエリとレポートを実行する場合
リモートサーバーに保存されたデータを時々更新または管理する場合
ベストプラクティス
メリットを最大化しリスクを最小化するには、常に次のことを考慮してください。
SQL Serverでリンクサーバーを作成する9つの手順
以下の9つの基本的な手順でSQL Serverにリンクサーバーを作成できます。
SQL Server Management Studio(SSMS)を開く:マシンでSSMSアプリケーションを起動します。
SQL Serverインスタンスに接続する:SSMSで、リンクサーバーを作成するSQL Serverインスタンスに接続します。

「サーバーオブジェクト」に移動する:SSMSのオブジェクトエクスプローラーペインで、「サーバーオブジェクト」フォルダーを展開します。

「リンクサーバー」にアクセスする:「サーバーオブジェクト」の下にある「リンクサーバー」フォルダーを右クリックします。
新しいリンクサーバーを作成する:コンテキストメニューから「新しいリンクサーバー」を選択してダイアログボックスを開きます。

リンクサーバーの詳細を指定する:ダイアログボックスでリンクサーバーの名前を指定し、サーバータイプとして「SQL Server」を選択します。「リンクサーバー」テキストボックスで指定された名前はリモートSQL Serverの名前でなければなりません。
インスタンスの詳細を指定する:SQL Serverインスタンスがデフォルトインスタンスであれば、SQL Serverのインスタンスをホストするコンピューターの名前を入力します。SQL Serverが名前付きインスタンスであれば、コンピューターの名前とインスタンスの名前をスラッシュで区切って入力します(例:コンピューター名\インスタンス名)。

セキュリティ設定を構成する:ダイアログボックスの「セキュリティ」ページに移動します。ここで、ユーザーがリンクサーバーに認証する方法を指定できます。

セットアップを完了する:必要な設定を構成した後、「OK」をクリックしてリンクサーバーを作成します。
SSMSのバージョンとSQL Server環境の具体的な構成によって、正確な手順が若干異なる場合があります。
SQL Serverリンクサーバーのパーミッション
SQL Serverでリンクサーバーを設定する際に使用できる4つのセキュリティオプションの概要を示します。
接続しない:このオプションはログインの動作を指定せずにリンクサーバーを作成します。マッピングされたログインがなければ、リンクサーバーは実質的に使えません。リモートサーバーへの匿名接続を試みますが、通常は失敗します。
セキュリティコンテキストを使用せずに接続する:このオプションは@useself = 'False'でNULLのマッピングされたログインを明示的に作成します。これはリモートサーバーにセキュリティコンテキストを渡さないよう明示的に指示します。匿名接続を試みる最初のオプションとは異なります。
ログインの現在のセキュリティコンテキストを使用して接続する:このオプションはリンクサーバーに現在のログインのセキュリティコンテキストを使用します。リモートサーバー上のそのログインのパーミッションが、ユーザーができることとできないことを最終的に決定します。
このセキュリティコンテキストを使用して接続する:残念ながら、この選択はリンクサーバーのセキュリティ設定を管理するための最も頻繁に使用される方法であると同時に、最もセキュリティが低い方法でもあります。リンクサーバーを使用するすべてのユーザーは、提供されたクレデンシャルを使用してリモートサーバーで認証されます。
SQL Serverリンクサーバーのユースケース
SQL Serverリンクサーバーのユースケースをいくつか示します。
小さいデータセットのクエリ:リンクサーバーを使用して、別のSQL Serverインスタンスまたは任意のODBC準拠データベースから小さいデータセットをクエリできます。ローカルSQL Serverインスタンスに保存されていないデータにアクセスする必要がある場合に有用です。
小さいデータセットのETL:リンクサーバーは小さいデータセットのETL(抽出・変換・ロード)プロセスに使用できます。リモートサーバーからデータを抽出し、必要に応じて変換してローカルサーバーにロードできます。
複雑なデータ統合の代替:データを共有する必要がある複数のデータベースがある場合、リンクサーバーの設定はより複雑なデータ統合ソリューションのシンプルな代替になります。T-SQLクエリを使用してリモートサーバーのデータにアクセスして操作できます。
異なるデータソースへのアクセス:リンクサーバーを使用してOracle・MySQLなど異なるデータソースのデータにアクセスできます。これは異種データベース環境で特に有用です。
フェデレーテッドクエリ:リンクサーバーにより、SQL Serverがフェデレーテッドクエリを実行できます。フェデレーテッドクエリとは、異なるサーバー上の複数のデータベースのデータにアクセスする分散クエリです。データが複数のデータベースに分散していて一緒にクエリする必要がある場合に有用です。
CDataの違い
CDataは、任意のCData ODBCデータソースをリンクサーバーとして接続するための堅牢で効率的なソリューションを提供します。SQL GatewayのTDSリモーティング機能を活用することで、ユーザーはSQL Server Management StudioのUIを通じて、またはストアドプロシージャを呼び出すことでリンクサーバーを設定できます。この柔軟性により、ユーザーはODBCデータソースをリンクされたSQL Serverインスタンスと同様に操作できます。プロセスにはTDSリモーティングサービスを実行しているODBCドライバーを使用してデータソースに接続し、最終的にODBCデータソースのリンクサーバーを作成することが含まれます。CDataが提供するこのシームレスな統合は、データの利便性と相互運用性を高め、データ管理と分析タスクを最適化します。詳細な手順については、ドキュメントをご参照ください。
SQL Serverから直接数百のSaaS・ビッグデータ・NoSQLソースへのライブかつオンデマンドのデータアクセスを得るには、いずれかのODBCドライバーの30日間無料トライアルにサインアップしてください。
いつものように、サポートチームがご質問に答える準備ができています。CDataコミュニティにご参加ください。質問して回答を得て、CDataの接続ツールの知識を共有しましょう。ぜひご参加ください!
※本記事はCData US ブログCData's Guide to Creating and Configuring a SQL Server Linked Serverの翻訳です。
Try CData today
Get direct, live connectivity to the data you need from any application, system, or database. Try CData Drivers today.
Try CData today