sp_addlinkedsrvlogin (Transact-SQL)

Изменения: 5 декабря 2005 г.

Создает или обновляет сопоставления имен входа в локальном экземпляре SQL Server с учетной записью на удаленном сервере.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname' 
     [ , [ @useself = ] 'TRUE' | 'FALSE' | 'NULL'] 
     [ , [ @locallogin = ] 'locallogin' ] 
     [ , [ @rmtuser = ] 'rmtuser' ] 
     [ , [ @rmtpassword = ] 'rmtpassword' ] 

Аргументы

  • [ @rmtsrvname = ] 'rmtsrvname'
    Имя связанного сервера, к которому применяется сопоставление имен входа. Аргумент rmtsrvname имеет тип sysname и не имеет значения по умолчанию.
  • [ @useself = ] 'TRUE' | 'FALSE' | 'NULL'
    Определяет, выполнено ли подключение к rmtsrvname с помощью олицетворенных локальных имен входа или явной отправки имени и пароля. Тип данных — varchar(8) со значением по умолчанию TRUE.

    Значение TRUE указывает, что имена входа используются учетными данными их владельцев для подключения к серверу rmtsrvname, пропуская аргументы rmtuser и rmtpassword. Значение FALSE указывает, что аргументы rmtuser и rmtpassword используются для подключения к серверу rmtsrvname с указанным именем locallogin. Если аргументы rmtuser и rmtpassword также принимают значение NULL, то имена входа и пароли для подключения к связанному серверу не используются.

  • [ @locallogin = ] 'locallogin'
    Имя входа на локальном сервере. Аргумент locallogin имеет тип sysname и значение по умолчанию NULL. Значение NULL указывает, что данная запись применяется ко всем локальным именам входа, подключающимся к серверу rmtsrvname. Если значение этого аргумента отлично от NULL, то аргумент locallogin может быть именем входа SQL Server или Windows. Имени входа Windows должен быть предоставлен либо прямой доступ к SQL Server, либо доступ через членство в группе Windows, обладающей нужными правами доступа.
  • [ @rmtuser = ] 'rmtuser'
    Удаленное имя входа, используемое при подключении к серверу rmtsrvname, когда значение @useself равно FALSE. Когда удаленный сервер — это экземпляр SQL Server, который не использует проверку подлинности Windows, аргумент rmtuser является именем входа SQL Server. Аргумент rmtuser имеет тип sysname со значением по умолчанию NULL.
  • [ @rmtpassword = ] 'rmtpassword'
    Пароль, назначенный rmtuser. Аргумент rmtpassword имеет тип sysname и значение по умолчанию NULL.

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

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

Замечания

Когда пользователь входит на локальный сервер и выполняет распределенный запрос, который обращается к таблице на связанном сервере, то для открытия таблицы локальный сервер должен войти на связанный сервер под именем данного пользователя. Учетные данные входа, с помощью которых локальный сервер будет входить на связанный сервер, задаются с помощью хранимой процедуры sp_addlinkedsrvlogin.

Сопоставление по умолчанию всех имен входа на локальном сервере с удаленными именами входа на связанном сервере создается автоматически при выполнении процедуры sp_addlinkedserver. Сопоставление по умолчанию заключается в том, что при подключении к связанному серверу SQL Server использует учетные данные пользователя от имени определенного имени входа. Это равнозначно выполнению процедуры sp_addlinkedsrvlogin с аргументом @useself в значении true для связанного сервера без указания локального имени пользователя. С помощью процедуры sp_addlinkedsrvlogin следует только изменять сопоставления по умолчанию или добавлять новые сопоставления для определенных локальных имен входа. Сопоставление по умолчанию или любое другое сопоставление удаляется с помощью процедуры sp_droplinkedsrvlogin.

Вместо того чтобы создавать предопределенные сопоставления входных имен с помощью процедуры sp_addlinkedsrvlogin, SQL Server может для подключения к связанному серверу автоматически использовать учетные данные безопасности Windows (имя входа и пароль Windows) пользователя, выполняющего запрос. При этом должны выполняться следующие условия.

  • Пользователь должен быть подключен к SQL Server в режиме проверки подлинности Windows
  • Делегирование учетной записи безопасности должно быть доступно на клиентском сервере и сервере-источнике
  • Поставщик должен поддерживать режим проверки подлинности Windows; например SQL Server, работающий в Windows
ms189811.note(ru-ru,SQL.90).gifПримечание.
Для одношаговых сценариев делегирование включать не обязательно, однако оно необходимо для многошаговых сценариев.

После завершения проверки подлинности связанным сервером (с помощью сопоставлений, заданных процедурой sp_addlinkedsrvlogin в локальном экземпляре SQL Server) разрешения для отдельных объектов в удаленной базе данных определяются связанным сервером, а не локальным.

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

Разрешения

Необходимо разрешение ALTER ANY LOGIN на сервере.

Примеры

А. Все локальные имена входа подключаются к связанному серверу с помощью собственных учетных данных

В следующем примере создается сопоставление, гарантирующее, что все имена входа на локальном сервере будут подключаться к связанному серверу Accounts с помощью собственных учетных данных.

EXEC sp_addlinkedsrvlogin 'Accounts'

Или

EXEC sp_addlinkedsrvlogin 'Accounts', 'true'
ms189811.note(ru-ru,SQL.90).gifПримечание.
Если для отдельных имен входа созданы явные сопоставления, то они имеют преимущество перед любыми глобальными сопоставлениями для данного связанного сервера.

Б. Подключение указанного имени входа к связанному серверу с помощью других учетных данных

В следующем примере создается сопоставление, гарантирующее, что пользователь Windows Domain\Mary будет подключаться к связанному серверу Accounts с помощью имени входа MaryP и пароля d89q3w4u.

EXEC sp_addlinkedsrvlogin 'Accounts', 'false', 'Domain\Mary', 'MaryP', 'd89q3w4u'
ms189811.security(ru-ru,SQL.90).gifПримечание безопасности.
В этом примере проверка подлинности Windows не применяется. Пароли передаются в незашифрованном виде. Пароли могут быть видны в определениях источника данных и сценариях, сохраненных на диске и в составе резервных копий, а также в файлах журналов. Никогда не используйте для таких соединений пароль администратора. За инструкциями по безопасности среды обратитесь к сетевому администратору.

См. также

Справочник

Хранимые процедуры распределенных запросов (Transact-SQL)
Представления каталога связанных серверов (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
sp_droplinkedsrvlogin (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)

Другие ресурсы

Настройка связанных серверов для делегирования
Безопасность для связанных серверов

Справка и поддержка

Получение помощи по SQL Server 2005