Compartilhar via


sp_addremotelogin (Transact-SQL)

Aplica-se a: SQL Server

Adiciona uma nova ID de logon remoto no servidor local. Isso permite que os servidores remotos se conectem e executem chamadas de procedimento remoto.

Importante

Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use procedimentos armazenados de servidor vinculado e servidores vinculados em vez disso.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

@remoteserver [ = ] N'servidor remoto'

O nome do servidor remoto ao qual o logon remoto se aplica. @remoteserver é sysname, sem padrão. Se apenas @remoteserver for especificado, todos os usuários no @remoteserver serão mapeados para logons existentes com o mesmo nome no servidor local. O servidor deve ser conhecido do servidor local. Isso é adicionado usando sp_addserver. Quando os usuários no @remoteserver se conectam ao servidor local que está executando o SQL Server para executar um procedimento armazenado remoto, eles se conectam como o logon local que corresponde ao seu próprio logon no @remoteserver. @remoteserver é o servidor que inicia a chamada de procedimento remoto.

@loginame [ = ] N'loginame'

A ID de logon do usuário na instância local do SQL Server. @loginame é sysname, com um padrão de NULL. @loginame já deve existir na instância local do SQL Server. Se @loginame for especificado, todos os usuários no @remoteserver serão mapeados para esse logon local específico. Quando os usuários no @remoteserver se conectam à instância local do SQL Server para executar um procedimento armazenado remoto, eles se conectam como @loginame.

@remotename [ = ] N'nome remoto'

A ID de login do usuário no servidor remoto. @remotename é sysname, com um padrão de NULL. @remotename deve existir em @remoteserver. Se @remotename for especificado, o @remotename de usuário específico será mapeado para @loginame no servidor local. Quando @remotename no @remoteserver se conecta à instância local do SQL Server para executar um procedimento armazenado remoto, ele se conecta como @loginame. O ID de login do @remotename pode ser diferente do ID de login no servidor remoto, @loginame.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

Para executar consultas distribuídas, use sp_addlinkedsrvlogin.

sp_addremotelogin não pode ser usado dentro de uma transação definida pelo usuário.

Permissões

Somente membros das funções de servidor fixas sysadmin e securityadmin podem executar sp_addremotelogin.

Exemplos

R. Mapear um a um

O exemplo a seguir mapeia nomes remotos para nomes locais quando o servidor remoto ACCOUNTS e o servidor local usam os mesmos logons de usuário.

EXEC sp_addremotelogin 'ACCOUNTS';

B. Mapeie muitos para um

O exemplo a seguir cria uma entrada que mapeia todos os usuários do servidor remoto ACCOUNTS para a ID de logon local Albert.

EXEC sp_addremotelogin 'ACCOUNTS', 'Albert';

C. Usar mapeamento um-para-um explícito

O exemplo a seguir mapeia um logon remoto de um usuário remoto Chris no servidor remoto ACCOUNTS para o usuário local salesmgr.

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