Менеджер соединений SSIS, не хранящий пароль SQL

К сожалению, это не совершенно возможно, поскольку ClassLoder не скажет Вам, какие классы доступны. Можно, однако, получить довольно близкое выполнение чего-то вроде этого:

for (String classpathEntry : System.getProperty("java.class.path").split(System.getProperty("path.separator"))) {
    if (classpathEntry.endsWith(".jar")) {
        File jar = new File(classpathEntry);

        JarInputStream is = new JarInputStream(new FileInputStream(jar));

        JarEntry entry;
        while( (entry = is.getNextJarEntry()) != null) {
            if(entry.getName().endsWith(".class")) {
                // Class.forName(entry.getName()) and check
                //   for implementation of the interface
            }
        }
    }
}

Редактирование: johnstok корректен (в комментариях), что это только работает на автономные JAVA-приложения и не будет работать под сервером приложений.

30
задан Trenton McKinney 1 November 2019 в 16:24
поделиться

2 ответа

Этот ответ указывает на эту статью: http://support.microsoft.com/kb/918760

Вот предлагаемые решения - вы их оценили?

  • Метод 1. Используйте учетную запись прокси агента SQL Server

Создайте учетную запись прокси агента SQL Server. Эта учетная запись прокси-сервера должна использовать учетные данные, которые позволяют агенту SQL Server запускать задание как учетная запись, создавшая пакет, или как учетная запись с необходимыми разрешениями.

Этот метод работает для расшифровки секретов и удовлетворяет ключевым требованиям пользователя. Однако этот метод может иметь ограниченный успех, поскольку пользовательские ключи пакета SSIS включают текущего пользователя и текущий компьютер. Таким образом, если вы переместите пакет на другой компьютер, этот метод все равно может не работать, даже если на этапе задания используется правильная учетная запись прокси. Перейти к началу страницы

  • Метод 2. Задайте для свойства ProtectionLevel пакета SSIS значение ServerStorage

Измените свойство ProtectionLevel пакета SSIS на ServerStorage. Этот параметр сохраняет пакет в базе данных SQL Server и позволяет управлять доступом через роли базы данных SQL Server. Перейти к началу страницы

  • Метод 3. Задайте для свойства ProtectionLevel пакета SSIS значение EncryptSensitiveWithPassword

Измените свойство ProtectionLevel пакета SSIS на EncryptSensitiveWithPassword. Этот параметр использует пароль для шифрования. Затем вы можете изменить командную строку шага задания агента SQL Server, включив в него этот пароль.

  • Метод 4: Используйте файлы конфигурации пакета SSIS

Используйте файлы конфигурации пакета SSIS для хранения конфиденциальной информации, а затем сохраните эти файлы конфигурации в защищенном папка. Затем вы можете изменить свойство ProtectionLevel на DontSaveSensitive, чтобы пакет не был зашифрован и не пытался сохранять секреты в пакете. Когда вы запускаете пакет SSIS, необходимая информация загружается из файла конфигурации. Убедитесь, что файлы конфигурации должным образом защищены, если они содержат конфиденциальную информацию.

  • Метод 5: Создайте шаблон пакета

Для долгосрочного решения создайте шаблон пакета, который использует уровень защиты, который отличается от настройки по умолчанию . Эта проблема не возникнет в будущих пакетах.

26
ответ дан 27 November 2019 в 23:47
поделиться

Разработанное поведение в SSIS состоит в том, чтобы предотвратить хранение паролей в пакете, потому что это плохая практика / небезопасно.

Вместо этого либо используйте аутентификацию Windows, чтобы не хранить секреты в пакетах или файлах конфигурации, либо, если это действительно невозможно в вашей среде (например, у вас нет домена Windows), вам нужно использовать обходной путь как описано в http://support.microsoft.com/kb/918760 (Сэм прав, просто читайте дальше в этой статье). Самый простой ответ - это файл конфигурации, идущий вместе с пакетом, но тогда вы должны беспокоиться о том, что файл конфигурации надежно хранится, чтобы кто-то не мог просто прочитать его и взять учетные данные.

6
ответ дан 27 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: