Пакет Microsoft SSIS успешно запущен вручную из Visual Studio и каталога служб интеграции SSMS, но не через агент SQL Server

У меня есть сложный пакет SSIS, который определяет расширение файла из папки и загружает файл в таблицу SQL Server. У меня есть контейнер для каждого цикла, чтобы таким образом загружать несколько файлов из этой папки и загружать каждый файл в таблицу SQL Server.

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

Я использую переменные среды в каталоге служб интеграции SSMS для сопоставления с параметрами в пакете/проекте SSIS.

Весь процесс проходит успешно, когда я запускаю пакет SSIS в каталоге служб интеграции SSMS вручную, но когда я пытаюсь запустить через агент SQL Server, загрузка данных и создание папки (задача файловой системы) выполняются успешно, но не файл Процесс перемещения файлов системной задачи. (Агент запускается как учетная запись службы агента SQL Server.)

Я получаю следующую ошибку, когда вижу отчет о выполнении в каталоге служб Integration Services в SSMS:

Задача файловой системы — перемещение файлов: ошибка: произошла ошибка со следующим сообщением об ошибке: «Отказано в доступе к пути.

Хотя агент SQL Server может успешно создать папку с помощью задачи файловой системы, он не может переместить файл в эту новую папку.

В истории агента SQL Server я вижу это на этапе задания:

Выполнять от имени пользователя: NT Service\SQLSERVERAGENT. Утилита выполнения пакетов Microsoft(R) SQL Server версии 14.0.2002. 14 для 64-битной версии. ... Не удалось выполнить пакет на IS Server. Идентификатор выполнения: 30449, статус выполнения: 4.

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

Есть ли пошаговое решение, которое вы можете предоставить мне, чтобы решить эту проблему?


person user3812887    schedule 04.07.2019    source источник
comment
Я думаю, проблема должна быть в исходной папке, вероятно, в исходной папке у вашей учетной записи агента есть только разрешение на чтение, попробуйте дать полный контроль над исходной папкой.   -  person BeiBei ZHU    schedule 05.07.2019
comment
Я согласен с BieBei - предоставление достаточного разрешения для папки может решить проблему. Однако, если вы хотите создать прокси-сервер, перейдите в «Учетные данные» в разделе «Безопасность» и создайте новые учетные данные, используя учетную запись, которая может успешно запустить пакет. Добавьте это в SQL Server Agent-Proxies-SSIS Package Execution. Обновите свое задание, чтобы использовать этот прокси, выбрав его имя в «Запуск от имени».   -  person Taps    schedule 05.07.2019


Ответы (1)


Задание агента SQL выполняет пакет, используя учетную запись службы агента SQL. Когда вы запускаете пакет вручную, пакет выполняется с использованием учетных данных, которые вы использовали для входа. Скорее всего, учетная запись службы агента SQL не имеет достаточного доступа к каталогу, особенно если он только что был создан. Убедитесь, что учетная запись службы имеет «Полный доступ» к каталогу, на который ссылается пакет. Чтобы проверить, связана ли проблема с доступом, войдите на сервер, используя учетные данные учетной записи службы, и вручную запустите пакет из каталога служб SSIS. Если это не удается по той же причине, вы знаете, что вам нужно посмотреть доступ к файловой системе для учетной записи службы.

person jgiercyk    schedule 05.07.2019
comment
Исправлено созданием прокси - person user3812887; 06.07.2019
comment
@user3812887 user3812887 есть информация, как решить эту проблему? - person kucluk; 05.02.2021
comment
Я исправил это давным-давно; я использовал сетевой путь вместо локального диска C. \\сетевой диск.....\,,\,, - person user3812887; 06.02.2021
comment
@kucluk см. эту ссылку: social.msdn.microsoft.com/Forums/en-US/ - person user3812887; 07.02.2021