SQL Server 2008 R2 JOB Step Linked Server Login Failed

Мне нужно ежедневно переносить таблицу. Имя таблицы меняется каждый день, поэтому я должен использовать скрипт, чтобы получить имя таблицы.

Существует шаг задания, который передает данные из исходной таблицы в целевую таблицу, созданную с помощью запроса T-SQL. sourceTable и targetTable находятся на разных серверах. Связанный сервер работает нормально.

Если я выполняю тот же запрос в студии управления sql serer, он работает нормально. Но когда задание выполняется на этом шаге, я вижу это сообщение:

Выполняется от имени пользователя: NT AUTHORITY\SYSTEM. Ошибка входа в систему для пользователя "NT AUTHORITY\ANONYMOUS LOGON". Шаг не удался.

Оба сервера sql имеют версию 2008 R2 и связаны друг с другом.

Вы можете посоветовать другие методы вместо использования T-SQL.

Любая помощь будет оценена по достоинству.


person Ismail Yavuz    schedule 17.04.2013    source источник


Ответы (2)


Это связано с проблемой "2-хоп" с сервером SQL. Я смог решить эту проблему двумя способами: 1. Все еще используя связанные серверы: на удаленном сервере создайте пользователя с аутентификацией SQL Server и предоставьте все необходимые разрешения. Затем откройте свойства связанного сервера и сопоставьте свою учетную запись с только что созданным пользователем, например: введите здесь описание изображения

После этого вы сможете запускать свои скрипты

  1. Использование openrowset:

    SELECT a.* FROM OPENROWSET('SQLNCLI', 'Server=;Trusted_Connection=yes;', 'SELECT * from .dbo.') AS a;

person vmg    schedule 05.02.2014
comment
Спасибо @Vitality за ваш ответ. Ваш ответ выглядит великолепно, но я решил свою проблему без связанных серверов. - person Ismail Yavuz; 11.02.2014

Я не смог решить эту проблему со связанными серверами.

Вместо связанных серверов я использовал следующие шаги:

  1. переименовать x в x_temp
  2. используйте пакет SSIS (который намного быстрее, чем запрос связанного сервера), чтобы переместить все данные с x_temp на другой сервер.
  3. переименуйте x_temp в x_dd_mm_yyyy
person Ismail Yavuz    schedule 11.02.2014