3

У меня есть пакет SSIS, который используется для подключения Oracle. Я использовал поставщик Oracle для диспетчера соединений OLEDB в SSIS. Я указал имя своего сервера, имя пользователя и пароль, установил флажок «Разрешить сохранение пароля». Он работает нормально на моей машине, но когда я даю копию другому разработчику, он не запускается, когда получает ошибку с ошибкой. Есть ли способ сохранить пароль в пакете SSIS, чтобы нам не нужно было об этом беспокоиться?Хранение пароля в пакете SSIS

+0

Щелкните на фоне пакета и создайте переменную OraclePassword строки типа и введите пароль. Нажмите один раз на диспетчере соединений Oracle и нажмите F4 (свойства). Найти выражения и щелкнуть по эллипсам (...). В раскрывающемся списке найдите пароль. В другом столбце ссылайтесь на созданную переменную '@ [User :: OraclePassword]' – billinkc

ответ

5

Ваша цель Package Protection Level. По умолчанию установлено значение EncryptSensitiveWithUserKey. Это означает, что все пароли шифруются с использованием учетной записи Windows. Как только другой пользователь попытается загрузить пакет, пароли будут потеряны.

Есть еще некоторые варианты для этого свойства пакета. Один из вариантов заключается в использовании EncryptSensitiveWithPassword или EncryptAllWithPassword. Используя эти параметры, каждый может открыть запуск пакета, если у него есть пароль.

Еще одним вариантом является использование опции DontSaveSensitive. Затем вы будете использовать выражения Oracle Connectionmanager, чтобы перезаписать либо пароль, либо полную строку соединения. Я могу подтвердить, что это работает очень хорошо, мы используем этот метод для наших паролей Oracle в течение многих лет. Поскольку этот параметр приводит к тому, что пароль, сохраненный в вашей системе (ых) незашифрованный, должен быть уверен в том, чтобы защитить его каким-либо другим способом.

Дальнейшее чтение: https://msdn.microsoft.com/en-us/library/ms141747.aspx

+0

Я пробовал с EncryptSensitiveWithPassword и EncryptAllWithPassword, но у них по-прежнему была такая же проблема. SSIS не сохранил пароль. Кроме того, FYI, у меня есть приложение Windows, которое запускает пакет SSIS (из-за того, что этот пакет работает только в нескольких шагах в нашем процессе). Я не могу размещать это на сервере и запускать его. Можете ли вы, пожалуйста, сообщить, что вы подразумеваете под выражениями диспетчера соединений Oracle? – techspider

+0

неважно, я создал переменную с моей строкой соединения с Oracle; Установите свойство ConnectionString для этой переменной через выражение. Но, по его словам, имя источника данных слишком велико. Пример моей переменной строки подключения --- Источник данных = "(ОПИСАНИЕ = (ADDRESS = (PROTOCOL = TCP) (HOST = myserver) (PORT = myport)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = myservice))); User ID = username; Provider = OraOLEDB.Oracle.1; Persist Security Info = True; Password = password; – techspider

+0

Я не знаю ограничений переменной SSIS, но вы также можете пропустить переменные и ввести строку непосредственно в свойство выражения строки подключения. Что касается самой ConnectionString, она выглядит как наша, за исключением того, что мы используем Oracle TNS-Name вместо полного разрешения, поэтому оно намного короче. –

0

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

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

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