Поделиться через


Access data stores and file shares with Windows authentication from SSIS packages in Azure (Доступ к хранилищам данных и общим папкам с помощью проверки подлинности Windows из пакетов служб SSIS в Azure)

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Можно использовать аутентификацию Windows для доступа к хранилищам данных, таким как серверы SQL Server, общие папки, Azure Files и т. д., из пакетов SSIS, работающих в среде выполнения интеграции Azure-SSIS в Azure Data Factory (ADF) и Azure Synapse. Хранилища данных могут быть локальными, размещаться на виртуальных машинах Azure или выполняться в Azure в качестве управляемых служб. Если они находятся на локальных серверах, вам нужно присоединить ваш Azure-SSIS IR к виртуальной сети (виртуальной сети Microsoft Azure), которая подключена к вашей локальной сети, см. в разделе Присоединение Azure-SSIS IR к виртуальной сети Microsoft Azure. Есть четыре способа доступа к хранилищам данных с помощью проверки подлинности Windows из пакетов SSIS, запускаемых на этой Azure-SSIS IR.

Способ подключения Область действия Этап настройки Метод доступа в пакетах Число наборов учетных данных и подключенных ресурсов Тип подключенных ресурсов
Настройка контекста выполнения на уровне действий При выполнении действия пакета SSIS Настройте свойство аутентификации Windows для задания контекста "Выполнение/Запуск от имени" при выполнении пакетов SSIS в виде активностей "Выполнение пакета SSIS" в конвейерах ADF.

Дополнительные сведения см. в руководстве по настройке действий "Выполнение пакета SSIS".
Выполняйте доступ к ресурсам напрямую в пакетах, например используйте UNC-путь для доступа к файловым ресурсам или файлам Azure: \\YourFileShareServerName\YourFolderName или \\YourAzureStorageAccountName.file.core.windows.net\YourFolderName. Поддержка только одного набора учетных данных для всех подключенных ресурсов: — общие файловые ресурсы в локальной среде и (или) на виртуальных машинах Azure;

— Azure Files, см. Использование общего ресурса файла Azure.

– серверы SQL Server в локальной среде или на виртуальных машинах Azure с проверкой подлинности Windows;

– другие ресурсы с аутентификацией Windows.
Настройка контекста выполнения на уровне каталога Для Azure-SSIS IR, но переопределяется при установке контекста выполнения на уровне действия (см. выше) Выполните хранимую процедуру SSISDB catalog.set_execution_credential, чтобы настроить контекст выполнения или запуска в заданном контексте.

Дополнительные сведения см. ниже в этой статье.
Выполняйте доступ к ресурсам напрямую в пакетах, например, используйте UNC-путь для доступа к общим папкам или файлам Azure: \\YourFileShareServerName\YourFolderName или \\YourAzureStorageAccountName.file.core.windows.net\YourFolderName. Поддержка только одного набора учетных данных для всех подключенных ресурсов: — общие файловые ресурсы в локальной среде и (или) на виртуальных машинах Azure;

— файлы Azure, как описано в этой статье.

– серверы SQL Server в локальной среде или на виртуальных машинах Azure с проверкой подлинности Windows;

– другие ресурсы с проверкой подлинности Windows.
Сохранение учетных данных посредством команды cmdkey По умолчанию для Azure-SSIS IR, но может быть переопределено при настройке контекста выполнения на уровне действия или каталога (см. выше). Выполните команду cmdkey в пользовательском скрипте установки (main.cmd) при подготовке среды Azure-SSIS IR, например, если используются общие папки, Файлы Azure или SQL Server:

cmdkey /add:YourFileShareServerName /user:YourDomainName\YourUsername /pass:YourPassword,

cmdkey /add:YourAzureStorageAccountName.file.core.windows.net /user:azure\YourAzureStorageAccountName /pass:YourAccessKey, или

cmdkey /add:YourSQLServerFullyQualifiedDomainNameOrIPAddress:YorSQLServerPort /user:YourDomainName\YourUsername /pass:YourPassword.

Дополнительные сведения см. в разделе Настройка среды выполнения Azure-SSIS IR.
Выполняйте доступ к ресурсам напрямую в пакетах, например, используйте UNC-путь для доступа к сетевым дискам или файлам Azure: \\YourFileShareServerName\YourFolderName или \\YourAzureStorageAccountName.file.core.windows.net\YourFolderName. Поддержка нескольких наборов учетных данных для разных подключенных ресурсов: — общие файловые ресурсы в локальной среде и (или) на виртуальных машинах Azure;

— файлы Azure, см. Использование общего ресурса файлов Azure

– серверы SQL Server в локальной среде или на виртуальных машинах Azure с проверкой подлинности Windows;

– другие ресурсы с проверкой подлинности Windows.
Монтирование дисков в процессе выполнения пакета (без сохранения состояния) За единицу упаковки Выполните команду net use в задаче "Выполнение процесса", которая добавляется в начало потока управления в пакетах, например, net use D: \\YourFileShareServerName\YourFolderName. Обращение к общим папкам через смонтированные диски. Поддерживать несколько накопителей для разных файловых хранилищ. — общие файловые ресурсы в локальной среде и (или) на виртуальных машинах Azure;

— Azure Files, см. Использование файлового ресурса Azure.

Предупреждение

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

Далее в статье описано, как настроить каталог SSIS (SSISDB), размещенный в Базе данных SQL/Управляемом экземпляре SQL, для запуска пакетов в среде Azure-SSIS IR с использованием проверки подлинности Windows для доступа к хранилищам данных.

Можно использовать только один набор учетных данных

При использовании проверки подлинности Windows в пакете SSIS можно использовать только один набор учетных данных. Учетные данные домена, указываемые при выполнении инструкций из этой статьи, применяются ко всем операциям (интерактивным или запланированным) в среде Azure-SSIS IR, пока эти данные не будут изменены или удалены. Если пакет должен подключаться к нескольким хранилищам данных с разными наборами учетных данных, следует рассмотреть другие описанные выше способы.

Предоставьте учетные данные домена для проверки подлинности в Windows

Чтобы задать учетные данные домена, с помощью которых пакеты смогут подключаться к локальным хранилищам данных, используя проверку подлинности Windows, сделайте следующее:

  1. С помощью SQL Server Management Studio (SSMS) или другого средства подключитесь к серверу Базы данных SQL или Управляемому экземпляру SQL, где размещается SSISDB. Дополнительные сведения см. в разделе Подключение к SSISDB в Azure.

  2. Откройте окно запроса для текущей базы данных SSISDB.

  3. Выполните следующую хранимую процедуру и укажите соответствующие учетные данные домена:

    catalog.set_execution_credential @user='<your user name>', @domain='<your domain name>', @password='<your password>'
    
  4. Запустите пакеты служб SSIS. Пакеты будут использовать предоставленные учетные данные для доступа к локальным хранилищам данных с помощью проверки подлинности Windows.

Просмотр учетных данных домена

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

  1. С помощью SSMS или другого средства подключитесь к серверу Базы данных SQL или Управляемому экземпляру SQL, где размещается SSISDB. Подробнее см. в Подключение к SSISDB в Azure.

  2. Откройте окно запроса для текущей базы данных SSISDB.

  3. Выполните следующую хранимую процедуру и просмотрите выходные данные:

    SELECT * 
    FROM catalog.master_properties
    WHERE property_name = 'EXECUTION_DOMAIN' OR property_name = 'EXECUTION_USER'
    

Удаление учетных данных домена

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

  1. С помощью SSMS или другого средства подключитесь к серверу Базы данных SQL или Управляемому экземпляру SQL, где размещается SSISDB. Для получения дополнительной информации см. Подключение к SSISDB в Azure.

  2. Откройте окно запроса для текущей базы данных SSISDB.

  3. Выполните следующую хранимую процедуру:

    catalog.set_execution_credential @user='', @domain='', @password=''
    

Подключение к SQL Server в локальной среде

Чтобы проверить возможность подключения к SQL Server в локальной среде, сделайте следующее:

  1. Чтобы выполнить эту проверку, найдите компьютер, не присоединенный к домену.

  2. На не присоединенном к домену компьютере выполните следующую команду, чтобы запустить SSMS с требуемыми учетными данными домена:

    runas.exe /netonly /user:<domain>\<username> SSMS.exe
    
  3. В SSMS проверьте, можете ли вы подключиться к серверу SQL Server на месте.

Предварительные условия

Для доступа к SQL Server в локальной среде из пакетов, выполняющихся в Azure, сделайте следующее:

  1. В диспетчере конфигурации SQL Server включите протокол TCP/IP.

  2. Разрешите доступ в брандмауэре Windows. Дополнительные сведения см. в руководстве по настройке брандмауэра Windows для включения доступа к SQL Server.

  3. Присоедините Azure-SSIS IR к виртуальной сети Microsoft Azure, которая подключена к локальной среде SQL Server. Дополнительные сведения см. в статье Присоединение Azure-SSIS IR к виртуальной сети Microsoft Azure.

  4. Используйте хранимую процедуру SSISDB catalog.set_execution_credential, чтобы предоставить учетные данные, как описано в этой статье.

Подключение к общей папке в локальной среде

Чтобы проверить возможность подключения к общей папке в локальной среде, сделайте следующее:

  1. Чтобы выполнить эту проверку, найдите компьютер, не присоединенный к домену.

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

    runas.exe /netonly /user:<domain>\<username> cmd.exe
    dir \\fileshare
    
  3. Проверьте, возвращен ли список каталогов для общего доступа в локальной сети.

Предварительные условия

Для доступа к общей папке в локальной среде из пакетов, выполняющихся в Azure, сделайте следующее:

  1. Разрешите доступ в брандмауэре Windows.

  2. Присоедините Azure-SSIS IR к виртуальной сети Microsoft Azure, которая подключена к общей папке в локальной среде. Дополнительные сведения см. в статье Присоединение Azure-SSIS IR к виртуальной сети Microsoft Azure.

  3. Используйте хранимую процедуру SSISDB catalog.set_execution_credential, чтобы указать учетные данные, как описано в этой статье.

Подключение к общей папке на виртуальной машине Azure

Для доступа к файловому ресурсу на виртуальной машине Azure из выполняемых в Azure пакетов сделайте следующее:

  1. С помощью SSMS или другого средства подключитесь к серверу Базы данных SQL или Управляемому экземпляру SQL, где размещается SSISDB. Дополнительные сведения см. в статье Подключение к каталогу SSIS (SSISDB) в Azure.

  2. Откройте окно запроса для текущей базы данных SSISDB.

  3. Выполните следующую хранимую процедуру и укажите соответствующие учетные данные домена:

    catalog.set_execution_credential @domain = N'.', @user = N'username of local account on Azure virtual machine', @password = N'password'
    

Подключение к общей папке в службе файлов Azure

Дополнительные сведения о файлах Azure см. в разделе Файлы Azure.

Для получения доступа к общему ресурсу в Файлах Azure из пакетов, выполняющихся в Azure, сделайте следующее:

  1. С помощью SSMS или другого средства подключитесь к серверу Базы данных SQL или Управляемому экземпляру SQL, где размещается SSISDB. Дополнительные сведения см. в статье Подключение к каталогу SSIS (SSISDB) в Azure.

  2. Откройте окно запроса для текущей базы данных SSISDB.

  3. Выполните следующую хранимую процедуру и укажите соответствующие учетные данные домена:

    catalog.set_execution_credential @domain = N'Azure', @user = N'<storage-account-name>', @password = N'<storage-account-key>'