Сбой пакета SSIS, если он не выполняется внутри сервера SSIS

#sql-server #asp.net-core #ssis

#sql-сервер #asp.net-core #ssis

Вопрос:

Я не могу решить эту проблему: у меня есть пакет SSIS, развернутый в каталоге SSIS. Я создал хранимую процедуру для назначения параметров и запуска пакета (используя SSISDB.catalog.create_execution, SSISDB.catalog.set_execution_parameter_value, SSISDB.catalog.start_execution).

Если я выполняю процедуру из SSMS (зарегистрирован в моей личной учетной записи), все работает нормально.
Если я выполняю ту же процедуру с тем же параметром из net core web api, пакет завершается с ошибкой.

Веб-api развернут на сервере iis, и относительный пул приложений запускается с использованием моей личной учетной записи в качестве удостоверения (то же самое используется для процедуры exec из ssms). Ошибка связана с доступом к сетевому файлу (\ servername sharedfolder nomefile.csv). Пакет не может получить доступ к файлу, потому что он открыт другим пользователем или у меня нет разрешения.

Если я открою обзор отчетов о неудачном и успешном выполнении, они идентичны. Те же параметры, тот же вызывающий абонент, тот же компьютер. Единственные различия заключаются во времени выполнения и конечном статусе.

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

РЕДАКТИРОВАТЬ: я попытался выполнить процедуру из SSMS на другом компьютере, и это не удалось. Поэтому, если я использую SSMS на компьютере, где установлен SSIS, он работает, с другого компьютера он выходит из строя, даже если я использую проверку подлинности Windows в обоих случаях.

Комментарии:

1. Я предполагаю, что проблема с двойным переходом Kerberos

2. Вы используете SSMS на сервере SQL? Можете ли вы просто создать задание агента SQL с прокси-сервером для запуска пакета? Это даст вам идентификатор локального входа для запуска пакета.

3. В противном случае, как указывает Дэвид, более простым способом будет использовать авторизованного пользователя из задания агента (при условии, что параметры выполнения не являются динамическими), а затем вы вызываете sp_start_job .

4. Мое подозрение также было бы двойным переходом, @billinkc , но тогда я бы ожидал, что OP получит ту же ошибку при выполнении пакета из SSMS, поскольку это обычно также приводит к двойному переходу. Если я не помню неправильно, я не думаю, что SSIS выдает эту ошибку при двойном переходе, я чувствую, что у него есть ошибка, указывающая, что он не может найти файл или не имеет разрешения, поскольку в этом говорится, что файл может быть открыт кем-то другим; подразумевая ошибку записи, а не ошибка чтения.

5. Неважно, правка подтверждает двойной прыжок! Тогда не обращай на меня внимания. 🙂