次の方法で共有


sp_addremotelogin (Transact-SQL)

適用対象: SQL サーバー

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

重要

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに、リンク サーバーとリンク サーバー ストアド プロシージャを使用してください。

Transact-SQL 構文表記規則

構文

sp_addremotelogin
    [ @remoteserver = ] N'remoteserver'
    [ , [ @loginame = ] N'loginame' ]
    [ , [ @remotename = ] N'remotename' ]
[ ; ]

引数

[ @remoteserver = ] N'remoteserver'

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

[ @loginame = ] N'loginame'

SQL Server のローカル インスタンス上のユーザーのログイン ID。 @loginamesysname で、既定値は NULL です。 @loginame は、SQL Server のローカル インスタンスに既に存在している必要があります。 @loginameを指定すると、@remoteserverのすべてのユーザーがその特定のローカル ログインにマップされます。 @remoteserverのユーザーが SQL Server のローカル インスタンスに接続してリモート ストアド プロシージャを実行すると、@loginameとして接続されます。

[ @remotename = ] N'remotename'

リモート サーバー上のユーザーのログイン ID。 @remotenamesysname で、既定値は NULL です。 @remotename@remoteserverに存在する必要があります。 @remotenameを指定すると、特定のユーザー @remotenameがローカル サーバー上の@loginameにマップされます。 @remoteserver@remotenameが SQL Server のローカル インスタンスに接続してリモート ストアド プロシージャを実行すると、@loginameとして接続されます。 @remotenameのログイン ID は、リモート サーバーのログイン ID (@loginame) とは異なる場合があります。

リターン コードの値

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

解説

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

sp_addremotelogin は、ユーザー定義トランザクション内では使用できません。

アクセス許可

sysadminおよびsecurityadmin固定サーバー ロールのメンバーのみがsp_addremoteloginを実行できます。

A. 1 つを 1 つにマップする

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

EXEC sp_addremotelogin 'ACCOUNTS';

B. 多くを 1 にマップする

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

EXEC sp_addremotelogin 'ACCOUNTS', 'Albert';

C: 明示的な 1 対 1 のマッピングを使用する

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

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