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

权限

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

示例

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';