FTP Task: Password Not Alowed

Когда в пакете SSIS используется компонент для загрузки данных на FTP сервер, вполне может возникнуть ситуация, когда во время дебага все работает, а при попытке выполнить пакет с помощью SQL Agent или, например, создав задание по расписанию, компонент FTP возвращает ошибку “Password Not Allowed”.
Как видно на скриншоте, свойству ProtectionLevel присвоено значение “EncryptSensitiveWithUserKey”, что означает что пароли в пакете будут шифроваться ключом пользователя, который работает с пакетом SSIS. Соответственно, когда workflow запускается в виде задания или работы SQL Agent, оно запускается скорей всего под какой-либо сервисной учетной записью, которая, в свою очередь, не может получить доступ к паролям сохраненным и зашифрованным чужим ключом.

Решить эту проблему можно двумя способами. Для начала расскажу о том, который нравится меньше:

Способ №1

Свойству ProtectionLevel можно присвоить значение “EncryptSensitiveWithPassword”. То есть для защиты различной конфиденциальной информации в пакете будет использоваться пароль, назначаемый пользователем.

При вызове такого пакета, например с помощью утилиты dtexec, потребуется передать мастер-пароль в теле команды:
dtexec /f “c:\package_name.dtsx”  /De password

Способ №2

Для хранения паролей можно использовать конфигурационный файл, данные из которого будут подгружаться в пакет на стадии выполнения.

На этапе создания новой конфигурации придется решить в каком виде она будет храниться. BIDS предлагает на выбор несколько вариантов, включая переменные, ключи реестра, XML-файл или базу SQL. В данном случае я остановился на последнем варианте.

Здесь потребуется выбрать коннектор к базе данных, указать в какой таблице будут храниться конфиги, если таковая отсутствует, то мастер предложит ее создать. Так как в одной таблице может храниться множество различных конфигураций, то помимо всего прочего мастер потребует создать ID конфигурации.

На следующем этапе нужно будет выбрать объекты, для которых в конфиге будут храниться различные атрибуты. В данном случае, я ограничусь исключительно именем пользователя и паролем доступа на FTP сервер.

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

В данном случае Login и Password – реквизиты для доступа к FTP серверу, которые нужно использовать. Более того, если компонент имеет одинаковое название во всех пакетах, один и тот же конфиг можно смело использовать для разных пакетов SSIS.

Запись опубликована в рубрике Business Intelligence с метками , . Добавьте в закладки постоянную ссылку.

3 Responses to FTP Task: Password Not Alowed

  1. 美容 пишет:

    Dear Soulmates

Добавить комментарий для Mobile phone Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *