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