sp_addremotelogin (Transact-SQL)

Se aplica a:SQL Server

Agrega un nuevo identificador de inicio de sesión remoto en el servidor local. Esto permite a los servidores remotos conectarse y ejecutar llamadas a procedimientos remotos.

Importante

Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Use servidores vinculados y procedimientos almacenados de servidores vinculados en su lugar.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @remoteserver = ] N'remoteserver'

Nombre del servidor remoto al que se aplica el inicio de sesión remoto. @remoteserver es sysname, sin ningún valor predeterminado. Si solo se especifica @remoteserver , todos los usuarios de @remoteserver se asignan a los inicios de sesión existentes del mismo nombre en el servidor local. El servidor debe ser un servidor conocido por el servidor local. Esto se agrega mediante sp_addserver. Cuando los usuarios de @remoteserver se conectan al servidor local que ejecuta SQL Server para ejecutar un procedimiento almacenado remoto, se conectan como el inicio de sesión local que coincide con su propio inicio de sesión en @remoteserver. @remoteserver es el servidor que inicia la llamada a procedimiento remoto.

[ @loginame = ] N'loginame'

Identificador de inicio de sesión del usuario en la instancia local de SQL Server. @loginame es sysname, con un valor predeterminado de NULL. @loginame ya debe existir en la instancia local de SQL Server. Si se especifica @loginame , todos los usuarios de @remoteserver se asignan a ese inicio de sesión local específico. Cuando los usuarios de @remoteserver se conectan a la instancia local de SQL Server para ejecutar un procedimiento almacenado remoto, se conectan como @loginame.

[ @remotename = ] N'remotename'

Identificador de inicio de sesión del usuario en el servidor remoto. @remotename es sysname, con un valor predeterminado de NULL. @remotename debe existir en @remoteserver. Si se especifica @remotename, el @remotename de usuario específico se asigna a @loginame en el servidor local. Cuando @remotename en @remoteserver se conecta a la instancia local de SQL Server para ejecutar un procedimiento almacenado remoto, se conecta como @loginame. El identificador de inicio de sesión de @remotename puede ser diferente del identificador de inicio de sesión en el servidor remoto, @loginame.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

Para ejecutar consultas distribuidas, use sp_addlinkedsrvlogin.

sp_addremotelogin no se puede usar dentro de una transacción definida por el usuario.

Permisos

Solo los miembros de los roles fijos de servidor sysadmin y securityadmin pueden ejecutar sp_addremotelogin.

Ejemplos

A Asignar uno a uno

En el siguiente ejemplo se asignan nombres remotos a nombres locales cuando el servidor remoto ACCOUNTS y el servidor local tienen los mismos inicios de sesión de usuario.

EXEC sp_addremotelogin 'ACCOUNTS';

B. Asignar varios a uno

En el siguiente ejemplo se crea una entrada que asigna todos los usuarios del servidor remoto ACCOUNTS al Id. de inicio de sesión local Albert.

EXEC sp_addremotelogin 'ACCOUNTS', 'Albert';

C. Uso de una asignación explícita de uno a uno

En el siguiente ejemplo se asigna un inicio de sesión remoto desde el usuario remoto Chris en el servidor remoto ACCOUNTS al usuario local salesmgr.

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