Freigeben über


Zugriffssteuerung für vertrauliche Daten in Paketen

Sie können die Daten in einem Integration Services -Paket schützen, indem 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.

Hinweis

Zusätzlich zu den in diesem Thema beschriebenen Schutzebenen können Sie feste Rollen auf Datenbankebene verwenden, um Pakete zu schützen, die auf dem Integration Services -Server gespeichert werden.

Definition vertraulicher Informationen

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

  • 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 Servicesgesteuert.

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.

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, der in der .NET Framework -Bibliotheksklasse (FCL) verfügbar ist.

Schutzebenen

In der folgenden Tabelle werden die in Integration Services verfügbaren Schutzebenen beschrieben. Die in Klammern stehenden Werte stammen aus der DTSProtectionLevel -Enumeration. Diese Werte werden im Eigenschaftenfenster angezeigt, das Sie zum Konfigurieren der Eigenschaften des Pakets verwenden, wenn Sie in SQL Server Data Tools (SSDT)mit Paketen arbeiten.

Schutzebene BESCHREIBUNG
Nicht sensible Daten 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 mit 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 mit 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.

Hinweis: 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.
Verschlüsseln vertraulicher Daten mit Kennwort (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).

Bei der Verwendung mit dem dtutil -Hilfsprogramm entspricht diese Schutzebene dem Wert 2.
Verschlüsseln von sensiblen Daten mit Benutzerschlüssel (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.

Hinweis: 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.
Verlassen Sie sich auf den Serverspeicher für die Verschlüsselung (ServerStorage) Schützt das gesamte Paket mithilfe von SQL Server -Datenbankrollen. Diese Option wird unterstützt, wenn ein Paket in der msdb-Datenbank von SQL Server gespeichert wird. Darüber hinaus verwendet der SSISDB-Katalog die ServerStorage Schutzebene.

Diese Option wird nicht unterstützt, wenn ein Paket von SQL Server Data Tools (SSDT)im Dateisystem gespeichert wird.

Einstellung der Schutzebene und SSISDB-Katalog

Der SSISDB-Katalog verwendet die ServerStorage Schutzebene. Wenn Sie ein Integration Services -Projekt auf dem Integration Services -Server bereitstellen, werden die Paketdaten und sensible Werte automatisch vom Katalog verschlüsselt. Die Daten werden vom Katalog auch automatisch entschlüsselt, wenn Sie sie abrufen.

Wenn Sie das Projekt (ISPAC-Datei) vom Integration Services-Server in das Dateisystem exportieren, ändert das System automatisch die Schutzebene in EncryptSensitiveWithUserKey. Wenn Sie das Projekt mithilfe des Integration Services-Importprojekt-Assistenten in SQL Server Data Tools (SSDT) importieren, zeigt die ProtectionLevel-Eigenschaft im Eigenschaftenfenster einen Wert von EncryptSensitiveWithUserKey.

Festlegen der Schutzebene auf Grundlage des Paketlebenszyklus

Die Schutzebene eines SQL Server Integration Services-Pakets wird bei dessen Entwicklung in SQL Server Data Tools (SSDT) festgelegt. Wenn das Paket dann zu einem späteren Zeitpunkt bereitgestellt, von Integration Services in SQL Server Management Studioimportiert oder daraus exportiert wird oder von SQL Server Data Tools (SSDT) 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. Lassen Sie während der Entwicklung die Schutzebene der Pakete auf den Standardwert festgelegt. EncryptSensitiveWithUserKey Mit dieser Einstellung wird sichergestellt, dass nur der Entwickler vertrauliche Werte im Paket sehen kann. Oder Sie können die Verwendung von EncryptAllWithUserKey oder DontSaveSensitive erwägen.

  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. Daher müssen Sie in der Regel 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. Oder sie können die bereitgestellten Pakete verschlüsseln, indem sie entweder EncryptSensitiveWithUserKey oder EncryptAllWithUserKey auswählen und die lokalen Anmeldeinformationen des Kontos verwenden, das die Pakete ausführt.

Siehe auch

Importieren und Exportieren von Paketen (SSIS-Dienst)
Integration Services-Pakete (SSIS)
Sicherheitsübersicht (Integration Services)