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
Примечание. |
---|
Для одношаговых сценариев делегирование включать не обязательно, однако оно необходимо для многошаговых сценариев. |
После завершения проверки подлинности связанным сервером (с помощью сопоставлений, заданных процедурой sp_addlinkedsrvlogin в локальном экземпляре SQL Server) разрешения для отдельных объектов в удаленной базе данных определяются связанным сервером, а не локальным.
Хранимую процедуру sp_addlinkedsrvlogin нельзя выполнять внутри пользовательских транзакций.
Разрешения
Необходимо разрешение ALTER ANY LOGIN на сервере.
Примеры
А. Все локальные имена входа подключаются к связанному серверу с помощью собственных учетных данных
В следующем примере создается сопоставление, гарантирующее, что все имена входа на локальном сервере будут подключаться к связанному серверу Accounts
с помощью собственных учетных данных.
EXEC sp_addlinkedsrvlogin 'Accounts'
Или
EXEC sp_addlinkedsrvlogin 'Accounts', 'true'
Примечание. |
---|
Если для отдельных имен входа созданы явные сопоставления, то они имеют преимущество перед любыми глобальными сопоставлениями для данного связанного сервера. |
Б. Подключение указанного имени входа к связанному серверу с помощью других учетных данных
В следующем примере создается сопоставление, гарантирующее, что пользователь Windows Domain\Mary
будет подключаться к связанному серверу Accounts
с помощью имени входа MaryP
и пароля d89q3w4u
.
EXEC sp_addlinkedsrvlogin 'Accounts', 'false', 'Domain\Mary', 'MaryP', 'd89q3w4u'
Примечание безопасности. |
---|
В этом примере проверка подлинности Windows не применяется. Пароли передаются в незашифрованном виде. Пароли могут быть видны в определениях источника данных и сценариях, сохраненных на диске и в составе резервных копий, а также в файлах журналов. Никогда не используйте для таких соединений пароль администратора. За инструкциями по безопасности среды обратитесь к сетевому администратору. |
См. также
Справочник
Хранимые процедуры распределенных запросов (Transact-SQL)
Представления каталога связанных серверов (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
sp_droplinkedsrvlogin (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)
Другие ресурсы
Настройка связанных серверов для делегирования
Безопасность для связанных серверов