Чей вход в систему используется в задании агента SQL Server 2008 - PullRequest
2 голосов
/ 25 июня 2011

У меня есть пакет служб SSIS, который передает некоторые таблицы в файлы CSV на сетевом диске; он работает нормально с моего компьютера вручную. Я сохраняю его на сервере в базе данных MSDB и выполняю оттуда, и он работает нормально, но когда я создаю задание, в котором один шаг запускает пакет SSIS из MSDB, он не может сказать, что не может найти имя файла CSV.

Я провел весь день вчера, выясняя, что это означает, что проблема с правами доступа для любых учетных данных входа в систему используется в задании. Владелец задания показывает, что это домен / myuserid, а свойства шага показывают, что они используют проверку подлинности Windows с моим именем пользователя. Проблема в том, что я знаю, что у меня есть доступ к этой папке.

Первая строка журнала ошибок гласит: «Выполнено от имени пользователя: имя_сервера \ SYSTEM». Поэтому я убедился, что у пользователя «SYSTEM» есть доступ к сетевой папке, в которую я хочу загрузить файлы, но я все еще получаю ту же ошибку.

Командная строка выглядит как @ command = N '/ SQL "\ Имя пакета служб SSIS" / Имя сервера SERVER / ПРОВЕРКА ОТКЛЮЧЕНИЯ / ОТЧЕТНОСТЬ E'

edit: я обнаружил проблему с учетной записью задания агента SQL Server , когда кто-то спрашивает, под кем выполняется задание, и marc_s говорит: "Я не могу найти никаких окончательных ответов на этот вопрос, действительно. Так как мой Задания обычно выбирают и обновляют материал в базе данных, я предполагаю, что учетная запись «Владелец» будет использоваться по умолчанию, если вы не указали какую-либо другую учетную запись на данном шаге »

Что также заставляет меня поверить, что оно использует мою регистрационную информацию, которая имеет доступ

Ответы [ 2 ]

4 голосов
/ 25 июня 2011

Наилучшая практика, которую нам удалось найти, - создать учетную запись домена для служб SSIS, а затем настроить прокси-сервер в SQL Server, который используется для запуска пакета служб SSIS в задании SQL.

2 голосов
/ 25 июня 2011

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

Возможно, вы захотите запустить его как учетную запись домена, которая имеет доступ.

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

Однако это может повлиять на последствия, поэтому будьте осторожны с другими заданиями.

...