Чей вход используется в задании агента SQL Server 2008
У меня есть пакет служб SSIS, который переносит некоторые таблицы в CSV-файлы на сетевом диске; он отлично работает с моего компьютера вручную. Я храню его на сервере в базе данных MSDB и выполняю его оттуда, и он работает нормально, но когда я создаю задание, которое имеет один шаг, который запускает пакет SSIS из MSDB, он терпит неудачу, говоря, что он не может найти имя файла CSV.
Вчера я провел весь день, выясняя, что это означает проблему с разрешениями с любыми учетными данными для входа, которые используются через работа. Владелец задания показывает, что это домен / myuserid, а свойства шага показывают, что они используют проверку подлинности windows с моим именем пользователя. Проблема в том, что я знаю, что у меня есть доступ к этой папке.
Первая строка журнала ошибок гласит:"выполняется как пользователь: имя_сервераSYSTEM". Поэтому я убедился, что пользователь "SYSTEM" имеет доступ к сетевой папке, в которую я хочу загрузить файлы, но я все равно получаю ту же ошибку.
Командная строка выглядит как @command=N' / SQL " SSIS имя пакета" /Server servername /CHECKPOINTING OFF / REPORTING E '
Edit: я нашел SQL Server agent job account issue, где кто-то спрашивает, под чьим именем выполняется задание, и marc_s говорит: "Я, кажется, не могу найти никаких окончательных ответов на этот вопрос. Поскольку мои задания обычно выбирают и обновляют материал в базе данных, я вынужден предположить, что учетная запись" владелец "будет использоваться по умолчанию, если вы не укажете какую-то другую учетную запись на данном шаге"
Что также приводит меня к мысли, что он использует мой информация для входа, имеющая доступ
2 ответа:
Лучший способ, который мы смогли придумать здесь, - создать учетную запись домена для служб SSIS, а затем настроить прокси-сервер в SQL Server, который используется для запуска пакета служб SSIS в задании SQL.
Я бы сказал, что учетная запись servername\SYSTEM является локальной учетной записью и поэтому не будет иметь доступа к сетевым папкам на других серверах.
Вероятно, вы хотите запустить это как доменную учетную запись, которая имеет доступ.
Обычно это будет агент SQL Server, поэтому проверьте в списке служб, в панели управления, и посмотрите, под какой учетной записью работает агент, и при необходимости измените его на соответствующую учетную запись.
Это может иметь стук по последствиям хотя, так что будьте осторожны, какие другие задания выполняются.