Хранимая процедура: ошибка входа на связанный сервер - PullRequest
0 голосов
/ 14 июля 2009

Я получаю сообщение "Сообщение 18456, уровень 14, состояние 1, строка 1: сбой входа пользователя 'NT AUTHORITY \ ANONYMOUS LOGON'".с при попытке выполнить код ниже.Я изменил всю важную информацию, но вы должны понять.

Некоторые из моих параметров неверны?Локальное имя пользователя sql admin правильно, а имя удаленного пользователя и пароль верны, но он все еще говорит мне, что вход не выполнен.Есть идеи?

В целом, есть ли другие изменения, которые мне нужно сделать?Могу ли я вставить данные таким образом?

Обе базы данных - это sql server 2005. Одна локальная, другая удаленная и доступна через защищенный туннель vpn.У меня нет проблем с доступом к внешней БД с использованием SSMS с использованием предоставленных мне имени пользователя и пароля (тех, которые я использовал в своем SP).

-- establish the linked server and login.   
EXEC sp_addlinkedserver   @server=SERVER1,@srvproduct='',@provider='SQLNCLI', @datasrc='SERVER IP ADDRESS'

EXEC sp_addlinkedsrvlogin SERVER1, 'false', 'LOCAL SQL ADMIN USERNAME', 'REMOTE USERNAME', 'REMOTE PASSWORD'

insert into [SERVER1].DATABASE.dbo.INSERTTABLE(....) select fields from localtable

-- drop the linked server and login
EXEC Sp_DropServer SERVER1, 'droplogins'

Ответы [ 3 ]

1 голос
/ 19 июля 2009

Я подозреваю, что на целевом сервере установлена ​​только «Аутентификация Windows».

Когда вы пытаетесь подключиться как логин SQL (указанный в sp_addlinkedsrvlogin), он пытается интерпретировать учетные данные как окна и завершается неудачно

Эта ошибка обычно возникает, когда @useself = 'true' для sp_addlinkedsrvlogin и вызывающий SQL Server не настроен для делегирования. Сервер (не сервер SQL) не может проходить через учетные данные Windows.

0 голосов
/ 23 июля 2009

Не уверены в точной причине, люди. Я только что перешел на созданный связанный сервер через графический интерфейс SSMS.

0 голосов
/ 14 июля 2009

1) использовать именованные параметры для sp_addlinkedsrvlogin для ясности.

2) используйте «go» между операторами (не выполняйте вышеуказанное как один пакет).

3) установить "локальное имя пользователя администратора sql" в null - чтобы исключить это

4) просто чтобы заметить, похоже, что удаленное имя пользователя / пароль (если указано) должны быть логинами sql-сервера, а не сетевыми логинами NT

Начни с этих ...!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...