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

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

ms175030.note(ja-jp,SQL.90).gifメモ :
リモート サーバーのサポートは、旧バージョンとの互換性を維持する目的にのみ用意されています。SQL Server のリモート インスタンスに対してストアド プロシージャを実行する必要がある新しいアプリケーションでは、代わりにリンク サーバーを使用してください。詳細については、「サーバーのリンク」を参照してください。

リモート サーバーのセットアップ

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

ms175030.note(ja-jp,SQL.90).gifメモ :
SQL Server 2005 では、sp_remoteoptiontrusted オプションがサポートされていません。

ローカル サーバーのセットアップ

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

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

ms175030.note(ja-jp,SQL.90).gifメモ :
可能であれば、Windows 認証を使用してください。

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

serverSendserverReceive という SQL Server インスタンスがあるとします。serverReceive は、Sales_Mary という serverSend からの受信ログインを、serverReceiveAlice という SQL Server 認証のログインにマップするように構成されています。serverSend からの Joe という別の受信ログインは、serverReceiveJoe という SQL Server 認証のログインにマップされます。**

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

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

--Create remote login mapping for login 'Sales_Mary' from serverSend
--to Alice.
EXEC 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.
EXEC sp_addremotelogin 'serverSend', 'Joe', 'Joe'
GO

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

--Create a remote server entry for RPCs from serverReceive.
EXEC 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.
EXEC sp_addlinkedsrvlogin 'serverReceive', false, 'Sales\Mary',
   'Sales_Mary', '430[fj%dk'
GO

参照

概念

リモート サーバーの構成

その他の技術情報

sp_configure (Transact-SQL)
sp_addremotelogin (Transact-SQL)
sys.sysremotelogins (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手