Transact-SQL 参考

sp_addremotelogin

在本地服务器上添加新的远程登录 ID,允许远程服务器连接并执行远程过程调用。

语法

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

参数

[@remoteserver =] 'remoteserver'

远程登录应用到的远程服务器的名称。remoteserver 的数据类型为 sysname,没有默认值。如果只给定了 remoteserver,则 remoteserver 上的所有用户都将映射为本地服务器上现有的同名登录。本地服务器必须能识别该服务器(使用 sp_addserver 添加)。当 remoteserver 上的用户连接到运行 Microsoft® SQL Server™ 的本地服务器以执行远程存储过程时,他们以与各自在 remoteser 上的登录相匹配的本地登录连接。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

每个远程登录项都有一个状态。默认的状态是 not trusted。当收到状态为 not trusted 的远程登录时,SQL Server 将检查密码。若要不检查密码,请使用 sp_remoteoption 将状态改为 trusted

不能在用户定义的事务中使用 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'

请参见

远程服务器的安全性

sp_addlinkedsrvlogin

sp_addlogin

sp_addserver

sp_dropremotelogin

sp_grantlogin

sp_helpremotelogin

sp_helpserver

sp_remoteoption

sp_revokelogin

系统存储过程