次の方法で共有


リモート サーバー

適用対象:SQL Server

SQL Server では、旧バージョンとの互換性を保つ目的でのみ、リモート サーバーがサポートされています。 新しいアプリケーションでは、リモート サーバーではなく、リンク サーバーを使用してください。 詳細については、「 リンク サーバー (データベース エンジン)」を参照してください。

リモート サーバーを構成することによって、 SQL Server のインスタンスに接続しているクライアントは、新たに接続を確立することなく、 SQL Server の別のインスタンスでストアド プロシージャを実行できます。 クライアントが接続するサーバーは、クライアントからの要求を受け、この要求をクライアントの代わりにリモート サーバーに送信します。 リモート サーバーが、要求を処理し、要求を行ったサーバーに結果を返します。 結果を受け取ったサーバーは、結果をクライアントに渡します。 リモート サーバーを構成する場合は、セキュリティをどのように確立するかを検討する必要もあります。

別のサーバーでストアド プロシージャを実行するようにサーバー構成を設定し、既存のリモート サーバー構成がない場合は、リモート サーバーではなくリンク サーバーを使用します。 リンク サーバーではストアド プロシージャと分散クエリの両方を使用できます。これに対して、リモート サーバーで使用できるのはストアド プロシージャだけです。

リモート サーバーの詳細

リモート サーバーは、組で設定します。 1 組のリモート サーバーを設定するには、両方のサーバーが相互にリモート サーバーとして認識できるように構成します。

ほとんどの場合、リモート サーバーの構成オプションを設定する必要はありません。 SQL Server によって、ローカル コンピューターとリモート コンピューターの両方にリモート サーバー接続を可能にする既定値が設定されます。

リモート サーバー アクセスを機能させるには、 remote access 構成オプションをローカル コンピューターとリモート コンピューターの両方で 1 に設定する必要があります。 (これが既定の設定です)。 remote access リモート サーバーからのログインを制御します。 この構成オプションは、Transact-SQL sp_configure ストアド プロシージャまたは SQL Server Management Studio を使用してリセットできます。 SQL Server Management Studioを使用してこのオプションを設定する場合は、 [サーバーのプロパティ] の [接続] ページで [このサーバーへのリモート接続を許可する] チェック ボックスをオンにします。 [サーバーのプロパティ接続] ページに移動するには、オブジェクト エクスプローラーでサーバー名を右クリックし、[プロパティ] を選択します。 [ サーバーのプロパティ ] ページで、[ 接続 ] ページを選択します。

ローカル サーバーからリモート サーバーの構成を無効にして、ペアになっているリモート サーバー上のユーザーがそのローカル サーバーにアクセスできないようにすることができます。

リモート サーバーのセキュリティ

リモート サーバーに対する RPC (リモート プロシージャ コール) を有効にするには、そのリモート サーバーでログイン マッピングを設定する必要があります。場合によっては、 SQL Serverのインスタンスを実行しているローカル サーバーでの設定も必要になります。 SQL Serverでは、RPC は既定で無効になっています。 この構成により、攻撃可能な領域を減らしてサーバーのセキュリティを強化できます。 RPC を使用する場合は、事前にこの機能を有効にする必要があります。 詳細については、 sp_configureを参照してください。

リモート サーバーを設定する

リモート ログインのマッピングは、リモート サーバーで設定する必要があります。 リモート サーバーはこれらのマッピングを使用して、指定のサーバーから RPC 接続用に受信したログインをローカル ログインにマップします。 リモート ログイン マッピングは、リモート サーバー上の sp_addremotelogin ストアド プロシージャを使用して設定できます。

Note

sp_remoteoption信頼できるオプションは、SQL Server ではサポートされていません。

ローカル サーバーを設定する

SQL Server で認証されたローカル ログインの場合、ローカル サーバーにログイン マッピングを設定する必要はありません。 SQL Server によって、リモート サーバーへの接続にローカル ログインとパスワードが使用されます。 Windows 認証のログインの場合は、ローカル ログインのマッピングをローカル サーバーで設定します。このマッピングでは、 SQL Server のインスタンスがリモート サーバーに RPC 接続する際に使用するログインとパスワードを定義します。

Windows 認証によって作成されたログインの場合は、 sp_addlinkedservlogin ストアド プロシージャを使用して、ログイン名とパスワードへのマッピングを作成する必要があります。 このログイン名とパスワードは、 sp_addremoteloginによって作成されたリモート サーバーで想定される受信ログインとパスワードと一致する必要があります。

Note

可能な場合は、Windows 認証を使用します。

リモート サーバーのセキュリティの例

次の SQL Server のインストールを検討してください: serverSendserverReceiveserverReceiveは、Sales_Mary と呼ばれるserverSendからの受信ログインを、Aliceと呼ばれるserverReceiveの SQL Server 認証ログインにマップするように構成されています。 Joeと呼ばれるserverSendからの別の受信ログインは、Joeと呼ばれる、serverReceiveの SQL Server 認証ログインにマップされます。

次の Transact-SQL コードの例では、 serverSend に対して RPC を実行するように serverReceiveを構成しています。

--Create remote server entry for RPCs
--from serverSend in serverReceive.
EXECUTE sp_addserver 'serverSend';
GO

--Create remote login mapping for login 'Sales_Mary' from serverSend  
--to Alice.
EXECUTE sp_addremotelogin 'serverSend', 'Alice', 'Sales_Mary';
GO

--Create remote login mapping for login Joe from serverReceive   
--to same login.  
--Assumes same password for Joe in both servers. 
EXECUTE sp_addremotelogin 'serverSend', 'Joe', 'Joe';
GO

serverSendでは、Windows 認証のログイン Sales\Mary をログイン Sales_Maryに変換するようにローカル ログインのマッピングが作成されます。 Joeには serverReceive に対するマッピングがあり、既定では同じログイン名とパスワードが使用されるので、 Joeのローカル マッピングは不要です。

--Create a remote server entry for RPCs from serverReceive.
EXECUTE sp_addserver 'serverReceive';
GO

--Create a local login mapping for the Windows authenticated login.  
--Sales\Mary to Sales_Mary. The password should match the  
--password for the login Sales_Mary in serverReceive.
EXECUTE sp_addlinkedsrvlogin 'serverReceive', false, 'Sales\Mary', 'Sales_Mary', '<password>';
GO

ローカル サーバーまたはリモート サーバーのプロパティを表示する

xp_msver拡張ストアド プロシージャを使用して、ローカル サーバーまたはリモート サーバーのサーバー属性を確認できます。 これらの属性には、 SQL Serverのバージョン番号、コンピューターのプロセッサの種類と数、およびオペレーティング システムのバージョンが格納されています。 リモート サーバーのデータベース、ファイル、ログイン、およびツールを、ローカル サーバーで表示できます。 詳細については、「 xp_msver」を参照してください。

リンク サーバー (データベース エンジン)