Пакет SSIS запускается из каталога, а не из агента SQL Server (тот же пользователь)

У меня есть пакет SSIS, разработанный для SQL Server 2012, который использует компонент сценария для открытия книги Excel и выполнения макроса. Этот пакет работает в Visual Studio, и я могу развернуть его на SQL Server 2012.

В SQL Server я могу выполнить пакет, выбрав его в каталогах служб Integration Services и щелкнув правой кнопкой мыши -> Выполнить ... (с 32-разрядной средой выполнения). Я понимаю, что при этом пакет запускается от имени пользователя, под которым я вошел на сервер. В этом сценарии пакет выполняется успешно.

Когда я создаю задание агента SQL Server для выполнения пакета каждую ночь, я создал прокси-пользователя с тем же пользователем домена, которого я использовал для входа на SQL-сервер, он завершается со следующей ошибкой:

Метод Execute для задачи вернул код ошибки 0x80070002 (не удалось загрузить файл или сборку Microsoft.VisualStudio.Tools.Applications, Version = 11.0.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a или одну из его зависимостей. Система не может найти указанный файл.). Метод Execute должен завершиться успешно и указать результат с помощью параметра «out».

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

Есть ли у агента SQL Server другие разрешения, которые необходимо предоставить?


person user7656032    schedule 24.07.2019    source источник


Ответы (3)


Попробуйте предоставить разрешения на чтение и запись учетной записи службы ядра СУБД SQL NT SERVICE\MSSQL$<Instance Name> (где <Instance Name> следует заменить на имя установленного экземпляра):

person Hadi    schedule 24.07.2019
comment
Спасибо за рекомендацию, к сожалению, это не помогло. По-прежнему с той же ошибкой. - person user7656032; 24.07.2019

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

person user7656032    schedule 24.07.2019

Я нашел это:

Введите "Свойства шага задания"

Там войдите "Конфигурация" -> "Дополнительно"

и проверьте "32-битную среду выполнения"

Решил мою проблему.

person CalgaryCoolCat    schedule 31.01.2020