2016-08-31 1 views
-1

Я хочу знать, как я могу вызвать SSIS с компьютера, а не на SQL-сервер. SSIS генерирует мультипликаторы в качестве вывода, и мне нужны эти файлы для сохранения на том же компьютере, на котором я назвал пакет.Как вызвать пакет SSIS, который создает файлы удаленно?

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

Какие у меня варианты?

Редактировать 1: Не тот же вопрос, что и Is it possible to execute an SSIS package remotely?, потому что я хочу знать, какие у меня варианты, зная, что пакет SSIS генерирует некоторые файлы, и я хочу, чтобы эти файлы сохранялись на компьютер, вызывающий пакет.

Любая помощь будет apreciated

+0

Имеет ли SQL Server доступ к вашему компьютеру? Нужно ли сохранять файлы на компьютер просто для доступа? Есть ли общий доступ/сервер, к которому имеют доступ как сервер, так и компьютер? –

+0

Возможная дубликация [Возможно ли выполнить пакет SSIS удаленно?] (Http://stackoverflow.com/questions/11847563/is-it-possible-to-execute-an-ssis-package-remotely) –

+0

Компьютер который вызывает SSIS, не имеет общей папки, в которой SSIS может записать файл. Да, файл сохраняется на компьютере, который вызывает упрощение задачи для пользователя. – Gringo

ответ

0

Независимо от того, как вы выполняете пакет Используете ли вы DTSExec или SQL Agent заданий, если вы хотите выполнить пакет на SQL сервере не на локальной машине у вас возникнет проблема контекста безопасности и доступ к каталогу/местоположению на локальном компьютере. вы также можете использовать брандмауэр, маршрутизацию и другие проблемы.

С DTSExec контекст безопасности будет соответствовать контексту пользователя, выполняющего задание, где, как и в случае с агентом SQL, контекст будет иметь значение учетной записи службы агента SQL. Поэтому, исходя из вашего ответа, одному или нескольким из этих учетных записей потребуется разрешение на чтение \ запись на локальный компьютер и возможность связаться с ним (например, никаких проблем с брандмауэром/маршрутизацией/DNS).

Далее ваш пакет должен знать, где сохранить задание, которое может быть выполнено с использованием переменных, но при выполнении пакета вам придется передавать каталог как параметр/переменную, поскольку если пакет выполняется удаленно, он не будет иметь какие-либо знания о том, что ваш компьютер является его инициатором. Ваш путь к каталогу должен быть настроен на общий доступ на вашем компьютере или использовать общий ресурс администратора, такой как \ computername \ C $ \ folderlocation или \ 192.168.0.1 \ c $ \ расположение папки.

Если вы используете DTSExec, вам, скорее всего, не придется беспокоиться о контексте безопасности, поскольку предположение заключается в том, что вы будете запускаться как зарегистрированный пользователь на компьютер, который должен иметь доступ. Но у вас все еще есть проблема, позволяющая SSIS знать, где копировать файлы. Если вы выполняете DTSExec с помощью удаленных команд powershell, вы можете просто использовать powershell для копирования файлов из промежуточного местоположения и не беспокоиться о конфигурации пакета SSIS.

+0

Спасибо за ваш ответ. Это понятно и очень понятно. Тем не менее у меня есть сомнения: мне нужно установить Integration Services на локальном компьютере (а не в SQL SERVER)? – Gringo

+0

давайте начнем с этого. Может ли ваш SQL Server достичь вашего локального компьютера? Например. если вы набрали одну из долей администратора с вашего SQL-сервера, он увидит файлы? Если это возможно, вы можете использовать powershell или переменные пакета для копирования файлов с SQL-сервера на локальный компьютер и не нуждаетесь в SQL на локальном компьютере. Если это не возможно, вам нужно будет запустить пакет локально и потребуется SQL-код – Matt

+0

Спасибо за помощь Matt – Gringo

0

два жизнеспособных вариантов используют DTExec, либо через файл битой или Powershell скрипт.
Ссылка для DTExec: https://technet.microsoft.com/en-us/library/ms162810(v=sql.105).aspx
Ссылка для DTExec и Powershell: http://www.databasejournal.com/features/mssql/ssis-2012-using-powershell-to-remotely-execute-file-system-packages.html

+0

Я посмотрю варианты, которые вы мне даете – Gringo

+0

Я часто называю их с помощью dtexec вместо sql-агентских заданий, гораздо проще группировать их вместе, если у вас несколько серверов sql и несколько пакетов ssis. –

+0

Если я использую dtexec, мне не нужны установки Integration Services? – Gringo