Pakketuitvoeringen:
SQL Server-gegevenstools:
Gebruikersreferenties waaronder SQL Server Data Tools (SSDT)
is operating zal worden gebruikt om de pakketten uit te voeren die binnen SSDT worden uitgevoerd.
Als u onder Windows Start \ Alle programma's \ Microsoft SQL Server 2012 op SQL Server Data Tools klikt, wordt het uitgevoerd onder uw referenties. Om met een ander gebruikersaccount te werken, kunt u op Ctrl . drukken + Shift om Run as different user
. te selecteren optie.
Integratiecatalogusservices:
Wanneer u met de rechtermuisknop op een pakket klikt onder Integration Services Catalog \ SSISDB \ <Folder name> \ Projects \ <Project name> \ Packages \ <Package name>
en selecteer Execute...
om een pakket uit te voeren. Het pakket wordt uitgevoerd onder de referenties die zijn gebruikt om verbinding te maken met SQL Server Management Studio.
Merk op dat als u een pakket probeert uit te voeren met behulp van SQL Server-verificatie, u de onderstaande foutmelding krijgt:
Nadat u op Execute...
. heeft gedrukt , SQL Server
draait een proces ISServerExec.exe
, waarmee een Console Window Host
. wordt gestart proces:
ISServerExec.exe
is een programma dat pakketten in SSIS Catalogus uitvoert. In dit geval wordt het gestart onder dezelfde gebruiker die een SSIS-pakket uitvoert vanuit SQL Server Management Studio.
SQL Server Agent-taak zonder proxy:
Wanneer u een SSIS-pakket uitvoert vanuit een SQL Server Agent Job , wordt de taakstap standaard uitgevoerd onder SQL Server Agent Service Account
. Het gebruikersaccount dat is gekoppeld aan SQL Server Agent Service kan worden gevonden door te navigeren naar Windows Start \ Administrative Tools \ Services
, zoek naar de service SQL Server Agent (Your Instance Name
) en zoek het gebruikersaccount onder Log On As
SQL Server Agent-taak met proxy:
U kunt ook een SQL Server Agent-taak uitvoeren onder andere referenties door een proxyaccount te maken. Wanneer taakstappen worden uitgevoerd onder een proxy-account, wordt het pakket in de taakstap uitgevoerd onder de referentie die is opgegeven op het proxy-account.
Het onderstaande SO-antwoord biedt stapsgewijze instructies om een proxy-account te maken om SQL Server Agent Jobs uit te voeren.
Hoe maak ik een stap in mijn SQL Server Agent Job die mijn SSIS-pakket zal uitvoeren?
Hoe te verifiëren:
Voorbeeld SSIS 2012-pakket:
Dit is wat ik deed om de bovenstaande verklaringen te verifiëren met betrekking tot de gebruikersaccounts die worden gebruikt voor pakketuitvoeringen.
-
Open SQL Server Data Tools en maak een SSIS 2012-pakket met de naam
SO_15289442.dtsx
. -
Maak een variabele met de naam
ExecutionUser
van gegevenstypeString
. Wijs de uitdrukking toe@[System::UserName]
naar de variabele.UserName
is een systeemvariabele die de informatie geeft van de gebruiker die het pakket uitvoert. -
Slepen en neerzetten E-mailtaak verzenden op de Gegevensstroom tabblad.
-
Maak een SMTP-verbinding en wijs deze toe aan de
SmtpConnection
op de pagina Taakbewerker verzenden - E-mail. -
Specificeer de
From
enTo
e-mailadressen. -
Wijzig het MessageSourceType naar
Variable
. -
Stel de
MessageSource
. in naarUser::ExecutionUser
. -
Klik met de rechtermuisknop op het pakket en selecteer Implementeren om het project te implementeren in de Integration Services Catalog die beschikbaar is op een server naar keuze.
Pakketuitvoeringen
-
Voer het pakket uit binnen SSDT.
-
Open SSDT met de optie Uitvoeren als andere gebruiker. Geef een andere referentie op dan die van u en voer het pakket opnieuw uit.
-
Voer het pakket uit vanuit de Integration Services-catalogus.
-
Maak een SQL Server Agent-taak om het pakket uit te voeren met het SQL Server Agent-serviceaccount.
-
Maak een SQL Server Agent Job om het pakket uit te voeren met een proxy-account.
Voor elke hierboven genoemde uitvoering ontvangt u een e-mail met het gebruikersaccount dat is gebruikt om het pakket uit te voeren.
Uw probleem:
In uw geval wordt het pakket uitgevoerd onder uw account (ervan uitgaande dat u uw inloggegevens gebruikt om toegang te krijgen tot SSISDB ) als u met de rechtermuisknop klikt en Uitvoeren selecteert in de Integration Services-catalogus. Zorg ervoor dat het account toegang heeft tot het netwerkpad.
Als u uw pakket uitvoert vanuit SQL Server Agent Job, is het proxy-account de run as another user
optie die u bekijkt.