任意の 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 を作成します。
- SQL Server Management Studio を開き、SQL Server のインスタンスに接続します。
- オブジェクトエクスプローラーで、SQL Server データベースのノードを展開します。[サーバーオブジェクト]ノードで[リンク サーバー]を右クリックし、[新しいリンク サーバー]をクリックします。[新しいリンク サーバー]ダイアログが表示されます。
- [全般]セクションで、[その他のデータソース]オプションをクリックし、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 を入力します。

-
[セキュリティ]セクションで、「このセキュリティコンテキストを使用して接続する」オプションを選択し、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」など任意の値、または空の文字列を指定できます。
-
sp_addlinkedserver を呼び出して Linked Server を作成します。
EXEC sp_addlinkedserver @server='SALESFORCE', @provider='SQLNCLI', @datasrc='<MachineIPAddress>,1433', @catalog='CData Salesforce Sys', @srvproduct =''; GO
-
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]
