2013-03-13 2 views
0

У меня есть пакет, который будет выполнять 7 пакетов с использованием задачи выполнения пакета. Эти 7 пакетов сохраняются с уровнем защиты как «Шифровать все данные с паролем».Выполнение задачи пакета с запросом пароля, если я сохранил пакет с «Шифровать все с паролем»

При настройке задачи «Выполнение пакета» я выбрал местоположение «Файловая система». Ежедневно мне нужно запустить этот пакет вручную. Но проблема в том, что мне нужно предоставить пароль для всех 7 пакетов каждый раз, когда я хочу его выполнить. Обычно я запускаю этот пакет во время обеда.

Есть ли все-таки я могу программно сохранить пароль пакета? Если я запустил его вчера, и я не закрыл BIDS, и я снова запускаю его сегодня, это не будет запрашивать пароль.

Я также попытался построить пакет после первого запуска, где он не запрашивал пароль. Затем я запускаю его снова, не закрывая BIDS. Но это все еще не работает.

+0

Есть ли причина, что вы используете метод защиты пароля? существуют другие методы, когда вам не нужно использовать пароль (шифрование сервера и шифрование пользователя) –

+0

Да, у нас (разработчиков) нет разрешения на развертывание пакетов и их расписание. Поэтому мы создадим пакет с одинаковым уровнем защиты и одним и тем же паролем. Так что во время развертывания не будет никакой путаницы. Также есть и другие люди, которые используют один и тот же сервер. Таким образом, пароль требуется. – Maximus

+0

ОК, еще одна вещь, если вы используете соединения SQL Server и проверку подлинности Windows во всем своем пакете, вы можете без проблем использовать безопасный уровень шифрования 'Do not Save Sensitive'. Если вы используете базу данных, которая не поддерживает проверку подлинности Windows, то вы не можете –

ответ

3

Даже если вы храните package passwords, SSIS всегда будет предлагать ввести пароль, когда вы используете BIDS для его выполнения. Это связано с тем, что BIDS пытается открыть отдельного пользователя child package designer и, следовательно, предлагает ввести пароль.

Таким образом, единственный путь, чтобы выполнить его без dialogue prompt для password является использование sql agent или dtexec utility

1.In заказа для выполнения дочерних пакетов я предлагаю вам создать конфигурационный файл для родительского пакета и выберите свойство Package Password для всех ваших Execute Package Task

enter image description here

2.Now в конфигурационном файле ввести пароль для всех индивидуальных execute package task

<Configuration ConfiguredType="Property" Path="\Package\Execute Package Task.Properties[PackagePassword]" ValueType="String"> 
    <ConfiguredValue>Password</ConfiguredValue> 
</Configuration> 

3.Execute вашего пакет, используя dtexec utility

dtexec.exe /f "PackageLocation/Parent.dtsx" 
+0

Спасибо, Правэ. Я это рассмотрю. – Maximus

Смежные вопросы