Поделиться через


sp_addremotelogin (Transact-SQL)

Добавляет новый идентификатор удаленного имени входа на локальный сервер. Это позволяет удаленным серверам подключаться и выполнять удаленные вызовы процедуры.

ПримечаниеПримечание

В следующей версии 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. Аргумент login имеет тип sysname и значение по умолчанию NULL. Идентификатор входа login уже должен существовать на локальном экземпляре SQL Server. Все пользователи на remoteserver сопоставляются с определенным локальным именем входа, если login указан. При подключении пользователей на remoteserver к локальному экземпляру SQL Server для выполнения удаленной хранимой процедуры используется аргумент login.

  • [ @remotename = ] 'remote_name'
    Это идентификатор входа пользователя на удаленном сервере. Аргумент remote_name имеет тип sysname и значение по умолчанию NULL. Аргумент remote_name должен существовать на remoteserver. Если аргумент remote_name указан, то remote_name определенного пользователя сопоставляется с login на локальном сервере. При подключении remote_name на remoteserver к локальному экземпляру SQL Server для выполнения удаленной хранимой процедуры используется login. Идентификатор входа remote_name может отличаться от идентификатора входа login на удаленном сервере.

Значения кодов возврата

0 (успешное завершение) или 1 (ошибка)

Замечания

Два выполнения распределенных запросов используйте хранимую процедуру sp_addlinkedsrvlogin.

Хранимую процедуру sp_addremotelogin нельзя использовать внутри пользовательской транзакции.

Разрешения

Хранимую процедуру sp_addremotelogin могут выполнять только члены предопределенных ролей сервера sysadmin и securityadmin.

Примеры

А. Сопоставление «один к одному»

Следующий пример сопоставляет удаленные имена локальным, если имена входа пользователей на удаленном сервере ACCOUNTS и на локальном сервере совпадают.

EXEC sp_addremotelogin 'ACCOUNTS';

Б. Сопоставление «многие к одному»

В следующем примере создается запись, которая сопоставляет всех пользователей удаленного сервера ACCOUNTS локальному идентификатору входа Albert.

EXEC sp_addremotelogin 'ACCOUNTS', 'Albert';

В. Использование явного сопоставления «один к одному»

Следующий пример сопоставляет удаленное имя входа удаленного пользователя Chris на удаленном сервере ACCOUNTS локальному пользователю salesmgr.

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