リンクサーバーの作成
このセクションでは、リンクSQL サーバーインスタンスを構成および作成する方法について説明します。
プロバイダーオプションの設定
SQL Server Management Studio は、ODBC ドライバーがインプロセスで使われることを要求するSQL Server Client OLE DB プロバイダーを使います。これを有効にするには、オブジェクトエクスプローラー -> サーバーオブジェクト -> リンクサーバー -> プロバイダーに移動し、"SQLOLEDB" を右クリックしてプロパティ -> 全般 -> プロバイダーオプション: -> InProcess 許可を選択します。OK をクリックして変更を確定します。SQL Gateway の設定
SQL Gateway 管理ツールでODBC データソースへのリモートアクセスを設定する手順は次のとおりです。- プロキシサービスをサービスタブで設定します。
- データベースユーザーをユーザータブで設定します。
- TLS/SSL をその他タブで設定します。
- SSH Tunnel を設定して、ファイアウォールの背後でホストされているサービスにアクセスします。
UI からのリンクサーバーの作成
SQL Server Management Studio のUI からリンクサーバーを作成するには:
- SQL Server Management Studio を開き、SQL Server のインスタンスに接続します。
- サーバーオブジェクトノードを展開してリンクサーバーを右クリックし、新しいリンクサーバーを選択します。[新しいリンクサーバー]ダイアログが表示されます。
- 全般セクションで、その他のデータソースを選択して次の情報を入力します。
- リンクサーバー:リンクサーバーの名前を付けます。
- プロバイダー:Microsoft OLE DB Driver for SQL Server または最新のMicrosoft ODBC Driver for SQL Server を選択します。
- データソース:サービスのホスト名およびポートをカンマ区切りで入力します。トンネリングで接続する場合は、トンネルのIP / ポートを指定してください。"localhost" の値は、SQL Server が実行されているマシンを参照するため、SQL Gateway サービスとSQL Server インスタンスが異なるマシンで動作している場合は注意が必要です。
- カタログ:カタログとしてシステムDSN を入力します。例、"CData Slack Sys"
- セキュリティセクションで、このセキュリティコンテキストを使用するを選択し、SQL Gateway 管理コンソールのユーザータブで許可したユーザーのユーザー名とパスワードを入力します。
プログラムによるリンクサーバーの作成
リンクサーバーは、SQL Server Management Studio のUI を使用して作成できるだけでなく、ストアドプロシージャを使用して作成することもできます。リンクサーバーを作成するには、次の入力が必須です。- Server:リンクサーバー名。
- Provider:Microsoft OLE DB Driver for SQL Server または最新のMicrosoft ODBC Driver for SQL Server の場合は、MSOLEDBSQL を入力します。
- Datasrc:サービスが実行されているホストとポート(カンマ区切り)。"localhost" の値は、SQL Server が実行されているマシンを参照するため、SQL Gateway サービスとSQL Server インスタンスが異なるマシンで動作している場合は注意が必要です。
- Catalog:サービスに設定されたシステムDSN を入力します。例、"CData Slack Sys"
- Srvproduct:データソースのプロダクト名を入力します。これは、"CData SQL Gateway" のような任意の値、または空の文字列に設定できます。
リンクサーバーを作成しSQL Gateway への認証を設定するには:
- sp_addlinkedserver を呼び出してリンクサーバーを作成します:
EXEC sp_addlinkedserver @server='Slack', @provider='MSOLEDBSQL', @datasrc='<Machine IP address>,1434', @catalog='CData Slack Sys'; GO
- SQL Server ユーザーがサービスの正規ユーザーの認証情報に接続できるようにします。サービスへの接続に使用する認証情報は、SQL Gateway 管理ツール内のUsers タブで定義したユーザーにマップしている必要があることに注意してください。
EXEC sp_addlinkedsrvlogin @rmtsrvname='Slack', @rmtuser='admin', @rmtpassword='test', @useself='FALSE', @locallogin=NULL; GO