Problembehandlung: SSIS-Paketausführung mit SQL Server-Agent (SQL Server-Video)

Betrifft: Microsoft SQL Server Integration Services

Autoren: Carla Sabotta, Microsoft Corporation

Länge: 00:12:12

Größe: 9,50 MB

Typ: WMV

Video ansehen

Verwandte Hilfethemen:

Ein SSIS-Paket wird nicht ausgeführt, wenn dieses von einem Auftragsschritt des SQL Server-Agents aufgerufen wird

dtexec (Dienstprogramm)

Vorgehensweise: Hinzufügen einer Paketkonfiguration

Festlegen der Paketschutzebene

Verwenden von Integration Services-Rollen

Weitere Videos:

Vorgehensweise: Automatisieren der SSIS-Paketausführung mit dem SQL Server-Agent (SQL Server-Video)

Videozusammenfassung

In diesem Video wird erläutert, wie Sie Probleme mit einem SQL Server Integration Services-Paket beheben können, das nicht ausgeführt wird, wenn es von einem Auftragsschritt des SQL Server-Agents aufgerufen wird. Das Paket wird außerhalb des SQL Server-Agents erfolgreich ausgeführt.

Videotranskript

Video-Zeitstempel Audio

00:00

Hallo. Ich heiße Carla Sabotta. Ich verfasse die Dokumentation für Microsoft SQL Server Integration Services.

In diesem Video zeige ich Ihnen, wie Sie Probleme mit einem SQL Server Integration Services-Paket beheben können, das nicht ausgeführt wird, wenn es von einem Auftragsschritt des SQL Server-Agents aufgerufen wird. Das Paket wird außerhalb des SQL Server-Agents erfolgreich ausgeführt.

Sie lernen die empfohlenen Methoden zum Beheben dieses Problems kennen, wie das Erstellen eines Proxykontos, das Bearbeiten der Eigenschaftseinstellung ProtectionLevel des Pakets, das Sichern wichtiger Daten in einer Paketkonfigurationsdatei und das Speichern eines Pakets in der msdb-Datenbank von SQL Server.

Wie Sie sehen, konnte das Integration Services-Paket mit diesem Auftrag nicht ausgeführt werden.

Wenn Sie ein Paket von einem Auftragsschritt des SQL Server-Agents aufrufen und das Paket nicht ausgeführt wird, kann dies folgende Ursachen haben:

  • Das Benutzerkonto, von dem das Paket als Auftragsschritt ausgeführt wird, entspricht nicht dem ursprünglichen Paketersteller.
    – oder –
  • Das Benutzerkonto verfügt nicht über die erforderlichen Berechtigungen, um Verbindungen aufzubauen oder um auf Ressourcen außerhalb des Pakets zuzugreifen.

Wenn das Benutzerkonto, über das das Paket vom Auftragsschritt aufgerufen wird, nicht mit dem ursprünglichen Paketersteller übereinstimmt, verhindert die Paketschutzebene möglicherweise die Ausführung des Pakets. Dies liegt daran, dass das Paket oder die vertraulichen Daten des Pakets vom Benutzerkonto nicht entschlüsselt werden können oder dass die fehlenden vertraulichen Daten des Pakets nicht vom Benutzerkonto bereitgestellt werden können.

Beispiele für vertrauliche Daten sind der Kennwortteil einer Verbindungszeichenfolge, eine als vertraulich markierte Variable usw.

Es gibt eine Reihe von empfohlenen Methoden zum Beheben von Problemen mit Verschlüsselung und vertraulichen Daten.

01:53

Bei der ersten Methode wird das Paket in der msdb-Datenbank von SQL Server gespeichert, wobei die Schutzebene auf Serverspeicher und Rollen für die Zugriffssteuerung verwenden (Rely on server storage and roles for access control) gesetzt wird. Hierzu verwenden Sie den Integration Services-Dienst in SQL Server Management Studio.

Die Datenbankrollen steuern nun den Lese- und Schreibzugriff auf das Paket. Sie müssen der Leserolle des Pakets eine der festen Rollen auf Datenbankebene von Integration Services oder eine benutzerdefinierte Rolle auf Datenbankebene zuweisen. Bei den festen Rollen auf Datenbankebene handelt es sich um "db_ssisadmin", "db_ssisoperator" und "db_ssisltduser". In diesem Beispiel weisen wir dem Paket die Rolle "db_ssisadmin" zu.

Wenn Sie dem Paket eine feste Rollen auf Datenbankebene zuweisen, muss das Benutzerkonto, über das das Paket vom Auftragsschritt aufgerufen wird, Mitglied dieser Rolle sein. Wenn Sie dem Paket eine benutzerdefinierte Rolle zuweisen, muss das Benutzerkonto Mitglied einer der festen Rollen auf Datenbankebene sowie der benutzerdefinierten Rolle sein.

03:59

Bei der zweiten Methode muss die Eigenschaftseinstellung ProtectionLevel in Business Intelligence Development Studio in EncryptSensitiveWithPassword geändert werden.

Sie können auf die Eigenschaft ProtectionLevel zugreifen, indem Sie an einer beliebigen Stelle der Paketablaufsteuerung klicken und anschließend im Einstellungsfenster ProtectionLevel auswählen.

Anschließend ändern Sie die Befehlszeile mit dem Auftragsschritt des SQL Server-Agents, sodass diese das Kennwort zum Entschlüsseln der vertraulichen Daten enthält. Das Kennwort wird mit dem Parameter /Decrypt des Befehlszeilenprogramms dtexec hinzugefügt. Die Auftragsschritte des SQL Server-Agents verwenden das Hilfsprogramm dtexec, um Pakete auszuführen.

05:22

Bei der dritten Methode zum Beheben von Problemen mit Verschlüsselung und vertraulichen Daten wird die Eigenschaftseinstellung ProtectionLevel in DontSaveSensitive geändert. Auch hierzu wird Business Intelligence Development Studio verwendet.

Mit dieser Eigenschaftseinstellung ist das Paket nicht verschlüsselt, und die vertraulichen Daten werden nicht mit dem Paket gespeichert. Daher verwenden Sie zum Speichern der Daten eine Paketkonfigurationsdatei. In diesem Beispiel speichern wir den Kennwortteil einer Verbindungszeichenfolge für den Verbindungs-Manager "DestinationConnectionOLEDB".

Wenn das Paket vom Auftragsschritt des SQL Server-Agents ausgeführt wird, werden die vertraulichen Daten aus der erstellten Konfigurationsdatei geladen.

Die Datei sollte in einem gesicherten Ordner erstellt werden.

Bislang haben wir uns mit Methoden zum Beheben von Problemen mit der Verschlüsselung und vertraulichen Daten befasst.

Die andere Ursache, durch die ein Paket von einem Auftragsschritt nicht ausgeführt werden kann, betrifft die Benutzerkontenberechtigungen.

Das Benutzerkonto verfügt nicht über die erforderlichen Berechtigungen, um Verbindungen aufzubauen oder um auf Ressourcen außerhalb des Pakets zuzugreifen.

08:08

Um die Berechtigungen des Benutzerkontos zu testen, öffnen Sie ein Eingabeaufforderungsfenster und führen den Befehl RunAs aus.

Ersetzen Sie mydomain\myuser durch die Authentifizierungsinformationen, die in den Anmeldeinformationen für das Konto gespeichert sind. Geben Sie bei entsprechender Aufforderung das Kennwort für das Konto ein.

Die empfohlene Methode zum Beheben des Berechtigungsproblems ist das Erstellen eines SQL Server-Agent-Proxykontos, das über die erforderlichen Berechtigungen verfügt. Mit dem Proxykonto werden außerdem die vertraulichen Daten des Pakets entschlüsselt.

Denken Sie daran, dass diese Methode fehlschlagen kann, wenn Sie das Paket auf einen anderen Computer verschieben und wenn die Eigenschaft ProtectionLevel auf EncryptSensitiveWithUserKey oder EncryptAllWithUserKey gesetzt ist.

09:12

Um ein Proxykonto erstellen zu können, müssen Sie Mitglied der festen Serverrolle "sysadmin" sein. Andernfalls müssen Sie in der msdb-Datenbank Mitglied von "SQLAgentOperatorRole", "SQLAgentReaderRole" oder "SQLAgentUserRole" sein.

Sie erstellen ein Proxykonto, indem Sie eine Transact-SQL-Abfrage ausführen oder indem Sie in SQL Server Management Studio das Dialogfeld Neues Proxykonto (New Proxy Account) verwenden. Wir werden das Dialogfeld Neues Proxykonto (New Proxy Account) verwenden.

Geben Sie auf der Seite Allgemein (General) den Namen und die Anmeldeinformationen für das neue Proxykonto ein. Wir geben dem Konto den Namen Package proxy und wählen die vorhandenen Anmeldeinformationen "User1" aus, die die Authentifizierungsinformationen enthalten.

Beachten Sie, dass der SQL Server-Agent mit den angegebenen Anmeldeinformationen den Auftrag als Paketerstellerkonto oder als Konto mit den erforderlichen Berechtigungen ausführen muss.

Geben Sie außerdem das Subsystem an, für das der Proxy aktiviert ist. Da der Auftrag ein Paket ausführt, wählen wir das Subsystem SQL Server Integration Services-Paket (SQL Server Integration Services Package) aus.

Die Beschreibung für den Proxy ist optional.

Auf der Seite Prinzipale (Principals) können Sie Rollen hinzufügen oder entfernen, um den Zugriff auf das Proxykonto zu gewähren. Mitglieder der festen Serverrolle "sysadmin" verfügen über automatischen Zugriff.

Die angegebenen Anmeldeinformationen für User1 des Proxykontos werden im Objekt-Explorer unter Anmeldeinformationen (Credentials) aufgeführt.

Sie können neue Anmeldeinformationen erstellen, indem Sie eine Transact-SQL-Abfrage ausführen oder indem Sie das Dialogfeld Neue Anmeldeinformationen (New Credentials) verwenden.

In diesem Video wurde erläutert, wie Sie Probleme mit einem Paket beheben, das nicht ausgeführt wird, wenn es von einem Auftragsschritt des SQL Server-Agents aufgerufen wird. Dabei wurden das Erstellen eines Proxykontos, das Bearbeiten der Eigenschaftseinstellung ProtectionLevel des Pakets, das Sichern wichtiger Daten in einer Paketkonfigurationsdatei und das Speichern eines Pakets in der msdb-Datenbank von SQL Server behandelt.

Vielen Dank, dass Sie sich dieses Video angesehen haben. Wir hoffen, Ihnen nützliche Informationen geliefert zu haben. Auf der Website finden Sie weitere Microsoft SQL Server-Videos.