Festlegen der Paketschutzebene

Zum Schützen der Daten in einem Integration Services-Paket können Sie eine Schutzebene festlegen, mit der nur vertrauliche Daten oder alle Daten im Paket geschützt werden. Darüber hinaus können Sie diese Daten mit einem Kennwort oder Benutzerschlüssel verschlüsseln oder die Daten von der Datenbank verschlüsseln lassen. Die für ein Paket verwendete Schutzebene ist außerdem nicht unbedingt statisch, sondern ändert sich im Lebenszyklus eines Pakets. Häufig wird eine Schutzebene während der Entwicklung und eine andere Schutzebene beim Bereitstellen des Pakets festgelegt.

HinweisHinweis

Neben den in diesem Thema beschriebenen Schutzebenen können in der msdb-Datenbank gespeicherte Pakete auch mit festen Rollen auf Datenbankebene geschützt werden. Integration Services stellt drei feste Datenbankrollen zum Zuweisen von Berechtigungen für Pakete bereit: db_ssisadmin, db_ssisltduser und db_ssisoperator. Weitere Informationen finden Sie unter Verwenden von Integration Services-Rollen.

Definieren von vertraulichen Informationen

In einem Integration Services-Paket werden die folgenden Informationen als vertraulich definiert:

  • Der Kennwortteil einer Verbindungszeichenfolge. Wenn Sie jedoch eine Option auswählen, mit der alle Daten verschlüsselt werden, wird die gesamte Verbindungszeichenfolge als vertraulich betrachtet.

  • Die vom Task generierten XML-Knoten, die als sensibel markiert sind. Die Markierung der XML-Knoten wird von Integration Services gesteuert und kann von den Benutzern nicht geändert werden.

  • Alle Variablen, die als vertraulich markiert sind. Die Markierung der Variablen wird von Integration Services gesteuert.

Ob Integration Services eine Eigenschaft als vertraulich einstuft oder nicht, hängt davon ab, ob der Entwickler der Integration Services-Komponente, etwa ein Verbindungs-Manager oder Task, die Eigenschaft als vertraulich gekennzeichnet hat. Benutzer können Eigenschaften weder der Liste der als vertraulich eingestuften Eigenschaften hinzufügen noch können sie sie aus dieser Liste entfernen.

Verwenden von Verschlüsselung

Die Verschlüsselung, wie sie von Paketschutzebenen verwendet wird, wird mit der Datenschutz-API (DPAPI) von Microsoft durchgeführt, die Teil der Kryptografie-API (CryptoAPI) ist.

Für die Paketschutzebenen, die Pakete mit Kennwörtern verschlüsseln, müssen Sie ebenfalls ein Kennwort angeben. Wenn Sie die Schutzebene von einer Ebene, die kein Kennwort verwendet, in eine Ebene ändern, die ein Kennwort verwendet, werden Sie zur Angabe eines Kennworts aufgefordert.

Für die Schutzebenen mit Kennwort wird in Integration Services der Dreifach-DES-Verschlüsselungsalgorithmus mit einer Schlüssellänge von 192 Bits verwendet, verfügbar in der .NET Framework-Bibliotheksklasse (FCL).

Grundlegendes zu den Schutzebenen

In der folgenden Tabelle werden die Schutzebenen von Integration Services beschrieben. Die in Klammern stehenden Werte sind Werte aus der DTSProtectionLevel-Enumeration. Diese Werte werden im Eigenschaftenfenster angezeigt, das Sie zum Konfigurieren der Eigenschaften des Pakets verwenden, wenn Sie in Business Intelligence Development Studio mit Paketen arbeiten.

Schutzebene

Beschreibung

Sensible Daten nicht speichern (DontSaveSensitive)

Unterdrückt die Werte vertraulicher Eigenschaften im Paket, wenn das Paket gespeichert wird. Diese Schutzebene verschlüsselt nicht, sondern verhindert stattdessen, dass als sensibel markierte Eigenschaften mit dem Paket gespeichert werden. Deshalb stehen die sensiblen Daten anderen Benutzern nicht zur Verfügung. Wenn das Paket von einem anderen Benutzer geöffnet wird, werden die sensiblen Daten durch Leerzeichen ersetzt und der Benutzer muss die sensiblen Daten angeben.

Bei der Verwendung mit dem dtutil-Hilfsprogramm (dtutil.exe) entspricht diese Schutzebene dem Wert 0.

Alle Daten mit einem Kennwort verschlüsseln (EncryptAllWithPassword)

Verwendet ein Kennwort zum Verschlüsseln des gesamten Pakets. Das Paket wird mit einem Kennwort verschlüsselt, das beim Erstellen oder Exportieren des Pakets vom Benutzer bereitgestellt wird. Um das Paket im SSIS-Designer zu öffnen oder mit dem dtexec-Eingabeaufforderungs-Hilfsprogramm auszuführen, muss der Benutzer das Paketkennwort angeben. Ohne Kennwort kann der Benutzer das Paket weder öffnen noch ausführen.

Bei der Verwendung mit dem dtutil-Hilfsprogramm entspricht diese Schutzebene dem Wert 3.

Alle Daten mit einem Benutzerschlüssel verschlüsseln (EncryptAllWithUserKey)

Verwendet einen auf dem aktuellen Benutzerprofil basierenden Schlüssel zum Verschlüsseln des gesamten Pakets. Nur der Benutzer, der das Paket erstellte oder exportierte, kann das Paket im SSIS-Designer öffnen oder mit dem Eingabeaufforderungs-Hilfsprogramm dtexec ausführen.

Bei der Verwendung mit dem dtutil-Hilfsprogramm entspricht diese Schutzebene dem Wert 4.

HinweisHinweis
Für Schutzebenen, für die ein Benutzerschlüssel verwendet wird, werden in Integration Services DPAPI-Standards verwendet. Weitere Informationen zu DPAPI finden Sie in der MSDN Library unter https://msdn.microsoft.com/library.

Sensible Daten mit einem Kennwort verschlüsseln (EncryptSensitiveWithPassword)

Verwendet ein Kennwort zum ausschließlichen Verschlüsseln der Werte vertraulicher Eigenschaften im Paket. Für diese Verschlüsselung wird DPAPI verwendet. Die sensiblen Daten werden als Teil des Pakets gespeichert, aber diese Daten werden mit einem Kennwort verschlüsselt, das vom aktuellen Benutzer beim Erstellen oder Exportieren des Pakets bereitgestellt wird. Um das Paket im SSIS-Designer zu öffnen, muss der Benutzer das Paketkennwort angeben. Falls kein Kennwort angegeben wird, wird das Paket ohne die sensiblen Daten geöffnet und der Benutzer muss neue Werte für sensible Daten angeben. Falls der Benutzer versucht, das Paket auszuführen, ohne das Kennwort anzugeben, schlägt die Paketausführung fehl. Weitere Informationen zu Kennwörtern und zur Befehlszeilenausführung finden Sie unter dtexec-Hilfsprogramm (SSIS-Tool).

Bei der Verwendung mit dem dtutil-Hilfsprogramm entspricht diese Schutzebene dem Wert 2.

Sensible Daten mit einem Benutzerschlüssel verschlüsseln (EncryptSensitiveWithUserKey)

Verwendet einen auf dem aktuellen Benutzerprofil basierenden Schlüssel zum ausschließlichen Verschlüsseln der Werte vertraulicher Eigenschaften im Paket. Das Paket kann nur von demselben Benutzer, der dasselbe Profil verwendet, geladen werden. Wenn das Paket von einem anderen Benutzer geöffnet wird, werden die sensiblen Daten durch Leerzeichen ersetzt und der aktuelle Benutzer muss neue Werte für die sensiblen Daten angeben. Wenn der Benutzer versucht, das Paket auszuführen, schlägt die Paketausführung fehl. Für diese Verschlüsselung wird DPAPI verwendet.

Bei der Verwendung mit dem dtutil-Hilfsprogramm entspricht diese Schutzebene dem Wert 1.

HinweisHinweis
Für Schutzebenen, für die ein Benutzerschlüssel verwendet wird, werden in Integration Services DPAPI-Standards verwendet. Weitere Informationen zu DPAPI finden Sie in der MSDN Library unter https://msdn.microsoft.com/library.

Serverspeicher für die Verschlüsselung verwenden (ServerStorage)

Schützt das gesamte Paket mithilfe von SQL Server-Datenbankrollen. Diese Option wird nur unterstützt, wenn ein Paket in der msdb-Datenbank von SQL Server gespeichert wird. Sie wird nicht unterstützt, wenn ein Paket in das Dateisystem von Business Intelligence Development Studio gespeichert wird.

Ändern der Schutzebene auf Grundlage des Paketlebenszyklus

Die Schutzebene eines SQL Server Integration Services-Pakets wird bei dessen Entwicklung in Business Intelligence Development Studio festgelegt. Wenn das Paket dann zu einem späteren Zeitpunkt bereitgestellt, von Integration Services in SQL Server Management Studio importiert oder daraus exportiert wird oder von Business Intelligence Development Studio nach SQL Server, in den SSIS-Paketspeicher oder in das Dateisystem kopiert wird, können Sie die Paketschutzebene aktualisieren. Wenn Sie z. B. Pakete auf Ihrem Computer mit einer Benutzerschlüssel-Schutzebenenoption erstellen und speichern, möchten Sie eventuell die Schutzebene ändern, wenn Sie das Paket anderen Benutzern übergeben; anderenfalls können diese Benutzer das Paket nicht öffnen.

Normalerweise wird die Schutzebene wie in den folgenden Schritten beschrieben geändert:

  1. Behalten Sie während der Entwicklung den Standardwert für die Schutzebene der Pakete bei (EncryptSensitiveWithUserKey). Mit dieser Einstellung wird sichergestellt, dass nur der Entwickler vertrauliche Werte im Paket sehen kann. Sie können auch die Verwendung von EncryptAllWithUserKey oder DontSaveSensitive in Betracht ziehen.

  2. Wenn Sie die Pakete bereitstellen möchten, müssen Sie die Schutzebene so ändern, dass sie nicht von dem Benutzerschlüssel des Entwicklers abhängig ist. Deshalb müssen Sie normalerweise EncryptSensitiveWithPassword oder EncryptAllWithPassword auswählen. Verschlüsseln Sie die Pakete, indem Sie ein temporäres sicheres Kennwort zuweisen, das auch dem Betriebsteam in der Produktionsumgebung bekannt ist.

  3. Nach dem Bereitstellen der Pakete in der Produktionsumgebung kann das Betriebsteam die bereitgestellten Pakete erneut verschlüsseln, indem ein neues, nur dem Betriebsteam bekanntes sicheres Kennwort zugewiesen wird. Die bereitgestellten Pakete können auch verschlüsselt werden, indem EncryptSensitiveWithUserKey oder EncryptAllWithUserKey ausgewählt wird und die lokalen Anmeldeinformationen des Kontos verwendet werden, mit dem die Pakete ausgeführt werden.

Integration Services (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf der Integration Services-Seite von MSDN oder TechNet:

Abonnieren Sie die auf der Seite verfügbaren RSS-Newsfeeds, um automatische Benachrichtigungen zu diesen Aktualisierungen zu erhalten.