Изпълнения на пакети:
Инструменти за данни на SQL Server:
Потребителски идентификационни данни, под които SQL Server Data Tools (SSDT)
работи, ще се използва за изпълнение на пакетите, които се изпълняват в SSDT.
Под Windows Start \ All Programs \ Microsoft SQL Server 2012, ако щракнете върху SQL Server Data Tools, той ще се изпълнява под вашите идентификационни данни. За да стартирате под различен потребителски акаунт, можете да натиснете Ctrl + Shift за да изберете Run as different user
опция.
Интеграционни каталожни услуги:
Когато щракнете с десния бутон върху пакет под Integration Services Catalog \ SSISDB \ <Folder name> \ Projects \ <Project name> \ Packages \ <Package name>
и изберете Execute...
за стартиране на пакет. Пакетът ще работи под идентификационните данни, използвани за свързване към SQL Server Management Studio.
Обърнете внимание, че ако се опитате да стартирате пакет с помощта на удостоверяване на SQL Server, ще получите следното съобщение за грешка:
След като натиснете Execute...
, SQL Server
завърта процес ISServerExec.exe
, който стартира Console Window Host
процес:
ISServerExec.exe
е програма, която изпълнява пакети в SSIS каталога. В този случай той се стартира под същия потребител, който изпълнява SSIS пакет от SQL Server Management Studio.
Задача на SQL Server Agent без прокси:
Когато стартирате SSIS пакет от Задание на SQL Server Agent , стъпката на заданието по подразбиране се изпълнява под SQL Server Agent Service Account
. Свързаният потребителски акаунт SQL Server Agent Service може да бъде намерен чрез навигиране до Windows Start \ Administrative Tools \ Services
, потърсете услугата SQL Server Agent (Your Instance Name
) и намерете потребителския акаунт, посочен под Log On As
Задача на SQL Server Agent с прокси:
Можете също така да стартирате работа на SQL Server Agent под различни идентификационни данни, като създадете прокси акаунт. Когато стъпките на заданието се изпълняват под прокси акаунт, пакетът в стъпката на заданието ще се изпълни под идентификационните данни, посочени в прокси акаунта.
По-долу SO отговор предоставя инструкции стъпка по стъпка за създаване на прокси акаунт за изпълнение на SQL Server Agent Jobs.
Как да създам стъпка в моята работа на SQL Server Agent, която ще изпълнява моя SSIS пакет?
Как да потвърдите:
Примерен пакет SSIS 2012:
Ето какво направих, за да проверя горните твърдения по отношение на потребителските акаунти, използвани за изпълнение на пакети.
-
Отворете SQL Server Data Tools и създайте SSIS 2012 пакет с име
SO_15289442.dtsx
. -
Създайте променлива с име
ExecutionUser
от тип данниString
. Присвоете израза@[System::UserName]
към променливата.UserName
е системна променлива, която предоставя информация за потребителя, изпълняващ пакета. -
Плъзнете и пуснете Задача за изпращане на поща към потока от данни раздел.
-
Създайте SMTP връзка и я задайте на
SmtpConnection
на страницата Редактор на задачите за изпращане на имейл - Поща. -
Посочете
From
иTo
имейл адреси. -
Променете MessageSourceType към
Variable
. -
Задайте
MessageSource
доUser::ExecutionUser
. -
Щракнете с десния бутон върху пакета и изберете Разполагане, за да разположите проекта в каталога на услугите за интеграция, достъпен на сървър по ваш избор.
Изпълнения на пакети
-
Стартирайте пакета в SSDT.
-
Отворете SSDT, като използвате опцията Изпълни като различен потребител. Предоставете различни идентификационни данни, различни от вашите, и стартирайте пакета отново.
-
Стартирайте пакета от каталога на Integration Services.
-
Създайте задание на SQL Server Agent, за да стартирате пакета с помощта на SQL Server Agent Service Account.
-
Създайте задание на SQL Server Agent, за да стартирате пакета с помощта на прокси акаунт.
За всяко изпълнение, споменато по-горе, ще получите имейл с потребителския акаунт, който е бил използван за изпълнение на пакета.
Вашият проблем:
Във вашия случай пакетът ще се изпълни под вашия акаунт (ако приемем, че използвате идентификационните си данни за достъп до SSISDB ), ако щракнете с десния бутон и изберете Изпълнение от каталога на Integration Services. Уверете се, че акаунтът има достъп до мрежовия път.
Ако изпълнявате своя пакет от SQL Server Agent Job, прокси акаунтът е run as another user
опция, която разглеждате.