sp_addremotelogin (Transact-SQL)

ローカル サーバーに新しいリモート ログイン ID を追加します。これにより、リモート サーバーがリモート プロシージャ呼び出しに接続して、これを実行できるようなります。

注意

この機能は、Microsoft SQL Server の次のバージョンで削除されます。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。 代わりに、リンク サーバーおよびリンク サーバーのストアド プロシージャを使用してください。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_addremotelogin [ @remoteserver = ] 'remoteserver' 
     [ , [ @loginame = ] 'login' ] 
          [ , [ @remotename = ] 'remote_name' ]

引数

  • [ @remoteserver = ] 'remoteserver'
    リモート ログインが適用されるリモート サーバーの名前を指定します。remoteserver のデータ型は sysname で、既定値はありません。remoteserver だけを指定した場合、remoteserver のすべてのユーザーがローカル サーバーで同じ名前の既存のログインにマップされます。このサーバーは、ローカル サーバーが認識している必要があります。サーバーは、sp_addserver を使用して追加されます。remoteserver のユーザーが SQL Server を実行するローカル サーバーに接続して、リモート ストアド プロシージャを実行する場合、remoteserver での自分のログインと一致するローカル ログインとして接続します。remoteserver はリモート プロシージャ呼び出しを開始するサーバーです。

  • [ @loginame = ] 'login'
    SQL Server のローカル インスタンスにおけるユーザーのログイン ID を指定します。login のデータ型は sysname で、既定値は NULL です。loginは、SQL Server のローカル インスタンス上に存在している必要があります。login を指定した場合、remoteserver のすべてのユーザーが特定のローカル ログインにマップされます。remoteserver のユーザーが SQL Server のローカル インスタンスに接続して、リモート ストアド プロシージャを実行する場合は、login として接続されます。

  • [ @remotename = ] 'remote_name'
    リモート サーバーにおけるユーザーのログイン ID を指定します。remote_name のデータ型は sysname で、既定値は NULL です。remote_name は、remoteserver 上に存在している必要があります。remote_name を指定した場合、特定のユーザー remote_name がローカル サーバー上での login にマップされます。remoteserver の remote_name が SQL Server のローカル インスタンスに接続して、リモート ストアド プロシージャを実行する場合は、login として接続されます。remote_name のログイン ID は、リモート サーバー上でのログイン ID (login) と異なっていてもかまいません。

戻り値

0 (成功) または 1 (失敗)

説明

分散クエリを実行するには、sp_addlinkedsrvlogin を使用します。

sp_addremotelogin をユーザー定義のトランザクションの内部で使用することはできません。

権限

sp_addremotelogin を実行できるのは、固定サーバー ロール sysadmin および securityadmin のメンバだけです。

A. 一対一でマップする

次の例では、リモート サーバー ACCOUNTS とローカル サーバーが同じユーザー ログインを持つ場合、リモート名をローカル名にマップします。

EXEC sp_addremotelogin 'ACCOUNTS';

B. 多対一でマップする

次の例では、リモート サーバー ACCOUNTS のすべてのユーザーを、ローカル ID Albert にマップするエントリを作成します。

EXEC sp_addremotelogin 'ACCOUNTS', 'Albert';

C. 明示的に一対一でマップする

次の例では、リモート サーバー ACCOUNTS のリモート ユーザー Chris からローカル ユーザー salesmgr に、リモート ログインをマップします。

EXEC sp_addremotelogin 'ACCOUNTS', 'salesmgr', 'Chris';