Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Welche Benutzeranmeldeinformationen verwendet der Integration Services-Katalog zum Ausführen von Paketen?

Paketausführungen:

SQL Server-Datentools:

Benutzeranmeldeinformationen, unter denen SQL Server Data Tools (SSDT) ausgeführt wird, wird verwendet, um die Pakete auszuführen, die innerhalb von SSDT ausgeführt werden.

Wenn Sie unter Windows Start \ Alle Programme \ Microsoft SQL Server 2012 auf SQL Server Data Tools klicken, wird es unter Ihren Anmeldeinformationen ausgeführt. Um unter einem anderen Benutzerkonto zu laufen, können Sie Strg drücken + Shift , um Run as different user auszuwählen Option.

Integrationskatalogdienste:

Wenn Sie mit der rechten Maustaste auf ein Paket unter Integration Services Catalog \ SSISDB \ <Folder name> \ Projects \ <Project name> \ Packages \ <Package name> klicken und wählen Sie Execute... um ein Paket auszuführen. Das Paket wird unter den Anmeldeinformationen ausgeführt, die für die Verbindung mit SQL Server Management Studio verwendet werden.

Beachten Sie, dass Sie beim Versuch, ein Paket mit der SQL Server-Authentifizierung auszuführen, die folgende Fehlermeldung erhalten:

Nachdem Sie Execute... gedrückt haben , SQL Server dreht einen Prozess ISServerExec.exe , wodurch ein Console Window Host gestartet wird Prozess:

ISServerExec.exe ist ein Programm, das Pakete im SSIS-Katalog ausführt. In diesem Fall wird es unter demselben Benutzer gestartet, der ein SSIS-Paket aus SQL Server Management Studio ausführt.

SQL Server Agent-Auftrag ohne Proxy:

Wenn Sie ein SSIS-Paket innerhalb eines SQL Server-Agentenauftrags ausführen , wird der Auftragsschritt standardmäßig unter SQL Server Agent Service Account ausgeführt . Den dem Benutzerkonto zugeordneten SQL Server Agent-Dienst finden Sie, indem Sie zu Windows Start \ Administrative Tools \ Services navigieren , suchen Sie nach dem Dienst SQL Server Agent (Your Instance Name ) und suchen Sie das unter Log On As aufgeführte Benutzerkonto

SQL Server-Agent-Auftrag mit Proxy:

Sie können einen SQL Server-Agent-Auftrag auch mit anderen Anmeldeinformationen ausführen, indem Sie ein Proxy-Konto erstellen. Wenn Auftragsschritte unter einem Proxy-Konto ausgeführt werden, wird das Paket im Auftragsschritt unter den im Proxy-Konto angegebenen Anmeldeinformationen ausgeführt.

Die folgende SO-Antwort enthält Schritt-für-Schritt-Anleitungen zum Erstellen eines Proxy-Kontos zum Ausführen von SQL Server-Agent-Aufträgen.

Wie erstelle ich einen Schritt in meinem SQL Server Agent-Job, der mein SSIS-Paket ausführt?

So überprüfen Sie:

Beispielpaket für SSIS 2012:

Folgendes habe ich getan, um die obigen Aussagen in Bezug auf die Benutzerkonten zu überprüfen, die für Paketausführungen verwendet werden.

  • Öffnen Sie SQL Server Data Tools und erstellen Sie ein SSIS 2012-Paket namens SO_15289442.dtsx .

  • Erstellen Sie eine Variable namens ExecutionUser vom Datentyp String . Weisen Sie den Ausdruck @[System::UserName] zu zur Variablen. UserName ist eine Systemvariable, die die Informationen des Benutzers bereitstellt, der das Paket ausführt.

  • Ziehen Sie Mail-Aufgabe senden per Drag-and-Drop auf den Datenfluss Registerkarte.

  • Erstellen Sie eine SMTP-Verbindung und weisen Sie diese der SmtpConnection zu auf der Seite Send Mail Task Editor - Mail.

  • Geben Sie From an und To E-Mail-Adressen.

  • Ändern Sie den MessageSourceType zu Variable .

  • Legen Sie die MessageSource fest zu User::ExecutionUser .

  • Klicken Sie mit der rechten Maustaste auf das Paket und wählen Sie Bereitstellen aus, um das Projekt im Integration Services-Katalog bereitzustellen, der auf einem Server Ihrer Wahl verfügbar ist.

Paketausführungen

  • Führen Sie das Paket innerhalb von SSDT aus.

  • Öffnen Sie SSDT mit der Option Als anderer Benutzer ausführen. Geben Sie einen anderen Berechtigungsnachweis als Ihren an und führen Sie das Paket erneut aus.

  • Führen Sie das Paket aus dem Integration Services-Katalog aus.

  • Erstellen Sie einen SQL Server-Agent-Auftrag, um das Paket mit dem SQL Server-Agent-Dienstkonto auszuführen.

  • Erstellen Sie einen SQL Server-Agent-Auftrag, um das Paket mit einem Proxy-Konto auszuführen.

Für jede oben genannte Ausführung erhalten Sie eine E-Mail mit dem Benutzerkonto, das zum Ausführen des Pakets verwendet wurde.

Ihr Problem:

In Ihrem Fall wird das Paket unter Ihrem Konto ausgeführt (vorausgesetzt, Sie verwenden Ihre Anmeldeinformationen für den Zugriff auf SSISDB ), wenn Sie mit der rechten Maustaste klicken und Aus Integration Services-Katalog ausführen auswählen. Stellen Sie sicher, dass das Konto Zugriff auf den Netzwerkpfad hat.

Wenn Sie Ihr Paket innerhalb des SQL Server-Agent-Auftrags ausführen, ist das Proxy-Konto Run as different user Option, die Sie sich ansehen.