sp_addremotelogin (Transact-SQL)

适用范围:SQL Server

在本地服务器上添加新的远程登录 ID。 这样,远程服务器就能够连接并执行远程过程调用。

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用链接服务器和链接服务器存储过程。

Transact-SQL 语法约定

语法

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

参数

[ @remoteserver = ] N'remoteserver'

远程登录应用到的远程服务器的名称。 @remoteserver为 sysname,没有默认值。 如果仅指定@remoteserver,则@remoteserver上的所有用户将映射到本地服务器上同名的现有登录名。 对于本地服务器而言,远程服务器必须是已知的。 这是使用 sp_addserver 添加的。 当@remoteserver用户连接到运行 SQL Server 以执行远程存储过程的本地服务器时,它们将作为与自己登录名匹配的本地登录名连接到@remoteserver @remoteserver是启动远程过程调用的服务器。

[ @loginame = ] N'loginame'

SQL Server 本地实例上的用户的登录 ID。 @loginame为 sysname,默认值为 NULL. @loginame必须已存在于 SQL Server 的本地实例上。 如果指定了@loginame,则@remoteserver上的所有用户都映射到该特定本地登录名。 当@remoteserver上的用户连接到 SQL Server 的本地实例以执行远程存储过程时,它们将作为@loginame进行连接。

[ @remotename = ] N'remotename'

远程服务器上的用户的登录 ID。 @remotename为 sysname,默认值为 NULL. @remoteserver上必须存在@remotename。 如果 指定了@remotename ,则特定用户 @remotename 映射到 本地服务器上的@loginame 。 当@remotename@remoteserver连接到 SQL Server 的本地实例以执行远程存储过程时,它将作为@loginame进行连接。 @remotename登录 ID 可以不同于远程服务器上的登录 ID,@loginame

返回代码值

0(成功)或 1(失败)。

注解

若要执行分布式查询,请使用 sp_addlinkedsrvlogin

sp_addremotelogin 不能在用户定义的事务中使用。

权限

只有 sysadmin 和 securityadmin 固定服务器角色的成员才能执行sp_addremotelogin

示例

A. 将一个映射到一个

以下示例在远程服务器 ACCOUNTS 和本地服务器具有相同的用户登录名时将远程名称映射到本地名称。

EXEC sp_addremotelogin 'ACCOUNTS';

B. 将多个映射到一个

以下示例创建一个条目,该条目将来自远程服务器 ACCOUNTS 的所有用户都映射到本地登录 ID Albert

EXEC sp_addremotelogin 'ACCOUNTS', 'Albert';

°C 使用显式一对一映射

以下示例将来自远程服务器 Chris 上的远程用户 ACCOUNTS 的远程登录映射到本地用户 salesmgr

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