web-dev-qa-db-de.com

Planen der Ausführung des SSIS-Pakets als ein anderes Konto als das SQL Agent-Dienstkonto

Ist es in SQL Server 2005 möglich, ein SSIS-Paket so zu planen, dass etwas anderes als das SQL Agent-Dienstkonto ausgeführt wird?

Ich habe ein SSIS-Paket, das eine Verbindung zu einer Datenbank herstellt und eine gespeicherte Prozedur ausführt. Meine Kriterien sind, dass ich keine Benutzernamen/Passwörter in einem Paket oder einer Paketkonfiguration angeben werde, daher möchte ich die integrierte Authentifizierung verwenden.

Das Problem besteht darin, dass ein Schritt in einem Auftrag standardmäßig als SQL Agent-Dienstkonto ausgeführt wird und unsere Servergruppe diesem Konto keine Ausführungsrechte für die gespeicherten Prozeduren gewähren möchte, die mein Paket ausführen wird. Wir versuchen daher, im Schritt einen Weg zu finden, um ein anderes Konto anzugeben, damit das Paket in einem anderen Kontext ausgeführt wird. Ist das möglich?

13
Jeremy

Wenn Sie das SSIS-Paket über SQL Agent-Jobs ausführen möchten, können Sie einen Proxy erstellen. Überprüfen Sie hier für weitere Informationen.

7
Scott Anderson

Wenn Sie über SQL Server Management Studio Zugriff auf SQL Server Agent haben, führen Sie die folgenden Schritte aus, um einen Auftrag mithilfe der grafischen Benutzeroberfläche zu erstellen. In den Schritten wird gezeigt, wie Sie einen SQL-Auftrag zum Ausführen von SSIS mit dem SQL Agent-Dienstkonto erstellen und einen Proxy erstellen, der mit unterschiedlichen Anmeldeinformationen unter einem anderen Konto ausgeführt wird.

  1. Wechseln Sie zu SQL Server Management Studio. Erweitern Sie SQL Server Agent und klicken Sie mit der rechten Maustaste auf Jobs. Wählen Sie dann New Job... aus (siehe Abbildung # 1 ).

  2. Wenn Sie einen Namen und einen Eigentümer angeben, ist dies standardmäßig das Konto, mit dem der Auftrag erstellt wird. Sie können ihn jedoch Ihren Anforderungen entsprechend ändern. Ordnen Sie eine Kategorie zu, wenn Sie möchten, und geben Sie auch eine Beschreibung an. Siehe Screenshot # 2 .

  3. Klicken Sie im Abschnitt Schritte auf New... (siehe Abbildung # 3 ).

  4. Geben Sie im Dialogfeld "Neuer Auftragsschritt" einen Schrittnamen ein. Wählen Sie unter Typ die Option SQL Server Inegration Services Package aus. Dieser Schritt wird standardmäßig unter SQL Agent Service Account ausgeführt. Wählen Sie die Paketquelle als File system und navigieren Sie zum Paketpfad, indem Sie auf Ellipse klicken. Dadurch wird der Paketpfad aufgefüllt. Siehe Screenshot # 4 . Wenn Sie nicht möchten, dass der Schritt unterSQL Agent Service Accountausgeführt wird, lesen Sie die Schritte # 8 - 9 , um zu erfahren, wie Sie ein anderes Konto verwenden können.

  5. Wenn Sie über eine SSIS-Konfigurationsdatei (.dtsConfig) für das Paket verfügen, klicken Sie auf die Registerkarte Konfigurationen und fügen Sie die Konfigurationsdatei hinzu (siehe Abbildung # 5 ).

  6. Klicken Sie auf OK, und das Paket in Schritt 1 wird angezeigt (siehe Abbildung # 6 ). Ebenso können Sie verschiedene Schritte anlegen.

  7. Sobald der Job erstellt wurde, können Sie mit der rechten Maustaste auf den Job klicken und Script Job as --> CREATE To --> New Query Editor Window auswählen, um das Skript wie in Screenshot # 7 gezeigt zu generieren.

  8. Um den SSIS-Schritt unter einem anderen Konto auszuführen, navigieren Sie im Management Studio zu Security --> right-click on Cedentials --> select New Credential... (siehe Abbildung # 8 ).

  9. Geben Sie im Dialogfeld New Credential einen Anmeldeinformationsnamen, ein Windows-Konto und ein Kennwort ein, unter denen Sie SSIS-Schritte in SQL-Jobs ausführen möchten. Siehe Screenshot # 9 . Der Berechtigungsnachweis wird wie in Screenshot # 10 gezeigt erstellt.

  10. Als nächstes müssen wir einen Proxy erstellen. Navigieren Sie im Management Studio zu SQL Server Agent --> Proxies --> right-click on SSIS Package Execution --> select New Proxy... (siehe Abbildung # 11 ).

  11. Geben Sie im Fenster Neues Proxy-Konto einen Proxy-Namen ein, wählen Sie den neu erstellten Berechtigungsnachweis aus, geben Sie eine Beschreibung ein und wählen Sie SQL Server Integration Services-Paket aus (siehe Abbildung # 12 ). Das Proxy-Konto sollte wie in Screenshot # 13 gezeigt erstellt werden.

  12. Wenn Sie jetzt zum Schritt in SQL-Job zurückkehren, sollte das neu erstellte Proxy-Konto in der Dropdown-Liste Ausführen als angezeigt werden. Siehe Screenshot # 14 .

Hoffentlich hilft das.

Screenshot 1:

1

Screenshot 2:

2

Screenshot 3:

3

Screenshot 4:

4

Screenshot Nr. 5:

5

Screenshot Nr. 6:

6

Screenshot Nr. 7:

7

Screenshot Nr. 8:

8

Screenshot Nr. 9:

9

Screenshot Nr. 10:

10

Screenshot # 11:

11

Screenshot Nr. 12:

12

Screenshot Nr. 13:

13

Screenshot Nr. 14:

14

38
user756519

Mit SQL 2012 habe ich eine Fehlermeldung erhalten, dass das ausgewählte Benutzerkonto kein Proxy sein darf. Die Verwendung der folgenden Abfrage löste dieses Problem:

use msdb
GO
exec sp_grant_login_to_proxy @login_name = 'MyLoginName', @proxy_name= 'proxy_SSIS'
0
Bas Kroes