Ответ 1
Выполнение пакета:
Инструменты данных SQL Server:
Учетные данные пользователя, под которым работает SQL Server Data Tools (SSDT)
, будут использоваться для выполнения пакетов, которые выполняются в SSDT.
В Windows Start\All Programs\Microsoft SQL Server 2012, если вы щелкнете Инструменты данных SQL Server, он будет запущен с вашими учетными данными. Для запуска под другой учетной записью пользователя вы можете нажать Ctrl + Shift, чтобы выбрать Run as different user
.
Службы каталогов интеграции:
Когда вы щелкаете правой кнопкой мыши по пакету в Integration Services Catalog \ SSISDB \ <Folder name> \ Projects \ <Project name> \ Packages \ <Package name>
и выбираете Execute...
, чтобы запустить пакет. Пакет будет работать с учетными данными, используемыми для подключения к SQL Server Management Studio.
Обратите внимание, что если вы попытаетесь запустить пакет с использованием аутентификации SQL Server, вы получите следующее сообщение об ошибке:
Операция не может быть запущена учетной записью, использующей проверку подлинности SQL Server. Запустите операцию с учетной записью, использующей проверку подлинности Windows.
После нажатия Execute...
SQL Server
запускает процесс ISServerExec.exe
, который запускает процесс Console Window Host
:
ISServerExec.exe
- это программа, которая выполняет пакеты в каталоге служб SSIS. В этом случае он запускается от имени того же пользователя, который выполняет пакет служб SSIS из SQL Server Management Studio.
Задание агента SQL Server без прокси-сервера:
Когда вы запускаете пакет служб SSIS из задания агента SQL Server, шаг задания по умолчанию выполняется в SQL Server Agent Service Account
. Службу агента SQL Server, связанную с учетной записью пользователя, можно найти, перейдя к Windows Start \ Administrative Tools \ Services
, найдите агент агента SQL Server службы (Your Instance Name
) и найдите учетную запись пользователя, указанную в списке Log On As
Задание агента SQL Server с прокси-сервером:
Вы также можете запустить задание агента SQL Server с другими учетными данными, создав учетную запись-посредник. Когда шаги задания выполняются под учетной записью прокси, пакет на шаге задания будет выполняться с учетными данными, указанными для учетной записи прокси.
В приведенном ниже SO-ответе приведены пошаговые инструкции по созданию учетной записи-посредника для выполнения заданий агента SQL Server.
Как создать в моем задании агента SQL Server шаг, который будет запускать мой пакет служб SSIS?
Как проверить:
Пример пакета служб SSIS 2012:
Вот что я сделал, чтобы проверить приведенные выше утверждения в отношении учетных записей пользователей, используемых для выполнения пакетов.
Откройте Инструменты данных SQL Server и создайте пакет служб SSIS 2012 с именем
SO_15289442.dtsx
.Создайте переменную с именем
ExecutionUser
типа данныхString
. Присвойте выражение@[System::UserName]
переменной.UserName
- системная переменная, которая предоставляет информацию о пользователе, выполняющем пакет.Перетащите задачу "Отправить почту" на вкладку "Поток данных".
Создайте SMTP-соединение и назначьте его для
SmtpConnection
в редакторе задач Send Mail - Mail.Укажите адреса электронной почты
From
иTo
.Измените MessageSourceType на
Variable
.Установите
MessageSource
наUser::ExecutionUser
.Щелкните правой кнопкой мыши пакет и выберите "Развернуть", чтобы развернуть проект в каталоге служб Integration Services, доступном на выбранном вами сервере.
Пакетные исполнения
Запустите пакет в SSDT.
Откройте SSDT, используя параметр "Запуск от имени другого пользователя". Укажите другие учетные данные, отличные от ваших, и снова запустите пакет.
Запустите пакет из каталога служб Integration Services.
Создайте задание агента SQL Server для запуска пакета с использованием учетной записи службы агента SQL Server.
Создайте задание агента SQL Server для запуска пакета с использованием учетной записи-посредника.
Для каждого выполнения, указанного выше, вы получите электронное письмо с учетной записью пользователя, которая использовалась для выполнения пакета.
Ваша проблема:
В вашем случае пакет будет выполняться под вашей учетной записью (при условии, что вы используете свои учетные данные для доступа к SSISDB), если щелкнуть правой кнопкой мыши и выбрать "Выполнить" из каталога служб Integration Services. Убедитесь, что у учетной записи есть доступ к сетевому пути.
Если вы запускаете свой пакет из задания агента SQL Server, прокси-счет является опцией run as another user
, которую вы просматриваете.