sql >> Database >  >> RDS >> Sqlserver

Welke gebruikersreferenties gebruikt Integration Services Catalog om pakketten uit te voeren?

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 gegevenstype String . 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 en To e-mailadressen.

  • Wijzig het MessageSourceType naar Variable .

  • Stel de MessageSource . in naar User::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.



  1. Een SQL Server Agent-schema wijzigen (T-SQL)

  2. Een manier om `where booleanvalue=false` te doen op zowel Sql Server als PostgreSQL?

  3. Formulier niet opslaan in database

  4. SQL self-join om specifieke rijen te retourneren