SSIS и пароли
У меня есть несколько пакетов служб SSIS, которые запускаются службами Windows. Эти пакеты указывают на любое количество различных баз данных, и информация о соединении известна только службе во время выполнения.
Я знаю, что не могу сохранить строки подключения внутри пакета, но кажется, что я даже не могу передать полную "строку подключения" как переменную; когда я делаю, пакет выходит из строя, и кажется, что пароль удален.
Однако я могу передать нужные мне части строки подключения, а затем снова собрать их в рабочую строку подключения. Я не хочу это делать; кажется неряшливым и опрометчивым.
У кого-нибудь есть мысли о том, как этого добиться?
3 ответа
Вы можете сохранить файлы конфигурации пакета XML. Они тоже вычеркнут пароли, но вы можете добавить их вручную. Я просто держу их в безопасном месте на серверах, так как они XML и пароли не зашифрованы. Любой, кто может получить доступ к XML-файлу, может в любом случае получить доступ к базе данных на этом сервере.
Когда вы создаете задание для запуска пакета, вы можете указать используемый файл конфигурации и его местоположение. Если вы разрабатываете, файл конфигурации находится на вашем компьютере. Как только он окажется на сервере, поместите файл конфигурации в безопасное место на том же сервере.
Вы можете передавать данные в пакеты служб SSIS как переменные, а значения в этих переменных можно "передавать" практически любому свойству или атрибуту в пакете.
Один из способов сделать это - передать имя сервера в качестве переменной, а затем для требуемого соединения я использовал выражения, чтобы присвоить переменную свойству ServerName соединения. Я не могу (быстро) найти веб-сайт, который подробно описывает, как это сделать, но я узнал об этом, пройдя учебники по службам SSIS в Books Online. (И, глядя на пример пакета, кажется, что да, вы можете передать всю строку соединения и назначить ее соединению с помощью выражений.)
Это здорово, если вам нужен хороший уровень контроля над тем, что входит в ваши пакеты. Файлы конфигурации XML эффективны, если ваши требования более просты. И, безусловно, параноидально относится к хранению паролей в файлах C:\Login.txt - если вы вообще можете, используйте аутентификацию NT.
Правильное развертывание и настройка пакетов служб SSIS не так просты, как кажется на первый взгляд. На MSDN есть очень хороший обзор правильного способа сделать это (включая настройку строки подключения и хранение пароля):
Развертывание пакетов служб интеграции
... в конце концов вы получаете пакет развертывания, который вы устанавливаете на сервере, а затем используете комбинацию файлов конфигурации XML и переменных среды для настройки пакета.