任意の ODBC データソースを Linked Server として接続



SQL Gateway の TDS Remoting 機能を使用すると、任意の CData ODBC データソースの Linked Server を設定できます。SQL Server Management Studio の UI を使用するか、ストアドプロシージャを呼び出して Linked Server を作成できます。その後は、リンクされた SQL Server インスタンスと同様に、ODBC データソースを操作できるようになります。

TDS Remoting を使用して Linked Server を作成するメリットについて詳しく知りたい方は、こちらをご覧ください。

TDS Remoting サービスの設定

SQL Gateway は、SQL Server の TDS プロトコルでクライアントからのリクエストをリッスンするサービスを実行します。このサービスは SQL Gateway の UI で設定できます。詳細については、SQL Gateway 概要のセットアップガイドを参照してください。

ODBC データソースの Linked Server を作成

TDS Remoting サービスの設定と起動が完了したら、Linked Server を作成して接続します。SQL Server Management Studio の UI を使用するか、ストアドプロシージャを呼び出して作成できます。

UI から Linked Server を作成

以下の手順に従って、オブジェクトエクスプローラーから Linked Server を作成します。

  1. SQL Server Management Studio を開き、SQL Server のインスタンスに接続します。
  2. オブジェクトエクスプローラーで、SQL Server データベースのノードを展開します。[サーバーオブジェクト]ノードで[リンク サーバー]を右クリックし、[新しいリンク サーバー]をクリックします。[新しいリンク サーバー]ダイアログが表示されます。
  3. [全般]セクションで、[その他のデータソース]オプションをクリックし、Linked Server に名前を付けた後、以下の情報を入力します。
    • プロバイダー:「Microsoft ODBC Driver for SQL Server」または「Microsoft OLE DB Driver for SQL Server」を選択します
    • データ ソース:TDS Remoting サービスが実行されているホストとポートをカンマで区切って入力します。

      この入力欄で「localhost」と指定すると、SQL Server が実行されているマシンを指すため、SQL Server と同じマシンで Management Studio を実行していない場合は注意が必要です。

    • カタログ:接続したい ODBC データソースの DSN を入力します。
  4. [セキュリティ]セクションで、「このセキュリティコンテキストを使用して接続する」オプションを選択し、SQL Gateway の[ユーザー]タブで作成したユーザーのユーザー名とパスワードを入力します。

プログラムから Linked Server を作成

SQL Server Management Studio の UI を使用する以外に、ストアドプロシージャを使用して Linked Server を作成することもできます。以下の入力が必要です。

  • server:Linked Server の名前
  • provider:Microsoft OLE DB Driver for SQL Server の場合は「MSOLEDBSQL」と入力します。
  • datasrc:サービスが実行されているホストとポートをカンマで区切って入力します。

    datasrc の入力欄で「localhost」と指定すると、SQL Server が実行されているマシンを指すため、SQL Server と同じマシンで Management Studio を実行していない場合は注意が必要です。

  • catalog:サービス用に設定したシステム DSN を入力します。
  • srvproduct:データソースの製品名を入力します。「CData SQL Gateway」など任意の値、または空の文字列を指定できます。
以下の手順に従って、Linked Server を作成し、SQL Gateway への認証を設定します。
  1. sp_addlinkedserver を呼び出して Linked Server を作成します。

    EXEC sp_addlinkedserver @server='SALESFORCE',
      @provider='SQLNCLI',
      @datasrc='<MachineIPAddress>,1433',
      @catalog='CData Salesforce Sys',
      @srvproduct ='';
    GO
  2. sp_addlinkedsrvlogin ストアドプロシージャを呼び出して、SQL Server ユーザーが TDS Remoting サービスの認証されたユーザーの資格情報で接続できるようにします。サービスへの接続に使用する資格情報は、SQL Gateway アプリケーションに登録されている資格情報である必要があります。

    EXEC sp_addlinkedsrvlogin @rmtsrvname='SALESFORCE',
      @rmtuser='admin',
      @rmtpassword='test',
      @useself='FALSE',
      @locallogin=NULL;
    GO

SQL Server Management Studio から接続

SQL Server Management Studio は SQL Server Client OLE DB プロバイダーを使用するため、ODBC ドライバーをインプロセスで使用する必要があります。SQL Server Management Studio から Linked Server にクエリを実行するには、Management Studio の SQL Server Native Client プロバイダーで「インプロセスを許可する」オプションを有効にする必要があります。これを行うには、[サーバーオブジェクト] -> [リンク サーバー] -> [プロバイダー]の下にある使用中のプロバイダーのプロパティを開きます。「インプロセスを許可する」オプションにチェックを入れて変更を保存します。

クエリの実行

これで、SQL Server に接続できる任意のツールから Linked Server に対してクエリを実行できます。テーブル名は適宜設定してください。

SELECT * FROM [LINKED_SERVER].[CATALOG].[SCHEMA].[TABLE_NAME]

始める準備はできましたか?

CData SQL Gateway の無料トライアルをダウンロード:

今すぐダウンロード