sp_addremotelogin (Transact-SQL)

Применимо к:SQL Server

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

Внимание

Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Пользуйтесь вместо него связанными серверами и хранимыми процедурами связанных серверов.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ @remoteserver = ] N'remoteserver'

Имя удаленного сервера, к которому применяется удаленное имя входа. @remoteserver — sysname без значения по умолчанию. Если указана только @remoteserver , все пользователи на @remoteserver сопоставляются с существующими именами того же имени на локальном сервере. Сервер должен быть известен локальному серверу. Это добавляется с помощью sp_addserver. Когда пользователи на @remoteserver подключаются к локальному серверу, на котором выполняется SQL Server для выполнения удаленной хранимой процедуры, они подключаются как локальное имя входа, соответствующее собственному имени входа в @remoteserver. @remoteserver — это сервер, инициирующий удаленный вызов процедуры.

[ @loginame = ] N'loginame'

Идентификатор входа пользователя в локальном экземпляре SQL Server. @loginame — sysname с значением по умолчаниюNULL. @loginame уже должно существовать в локальном экземпляре SQL Server. Если указан @loginame , все пользователи на @remoteserver сопоставляются с определенным локальным именем входа. Когда пользователи на @remoteserver подключаются к локальному экземпляру SQL Server для выполнения удаленной хранимой процедуры, они подключаются как @loginame.

[ @remotename = ] N'remotename'

Идентификатор входа пользователя на удаленном сервере. @remotename — sysname( значение по умолчанию NULL). @remotename должно существовать в @remoteserver. Если указан @remotename , конкретный пользователь @remotename сопоставляется с @loginame на локальном сервере. Когда @remotename на @remoteserver подключается к локальному экземпляру SQL Server для выполнения удаленной хранимой процедуры, она подключается как @loginame. Идентификатор входа @remotename может отличаться от идентификатора входа на удаленном сервере @loginame.

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

0 (успешно) или 1 (сбой).

Замечания

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

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

Разрешения

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

Примеры

А. Сопоставление одного с одним

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

EXEC sp_addremotelogin 'ACCOUNTS';

B. Сопоставление нескольких с одним

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

EXEC sp_addremotelogin 'ACCOUNTS', 'Albert';

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

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

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