CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

SSIS Package Security

Passwörter sind sensible Daten. Diese sollten immer und überall geschützt werden. Wenn automatische Prozesse laufen und Passwörter gespeichert werden müssen, sollten diese auf beste Art und Weise vor unbefugtem Zugriff geschützt werden.

Beim Import von Daten aus Vorsystemen werden oft ein spezieller User und dessen Passwort benötigt. Damit so ein Prozess automatisiert im Hintergrund laufen kann, muss das Kennwort direkt im SSIS-Paket mithilfe des Verbindungsmanagers abgespeichert werden.

2014-05-23_crew_Verbindungsmanager

Abb. 1: Verbindungsmanager

Im SSIS-Paket kann in den Eigenschaften der Protection Level festgelegt werden. Hierbei gibt es sechs unterschiedliche Ausprägungen:

2014-05-23_crew_Einstellungen Protection Level

Abb. 2: Einstellungen Protection Level

  • DontSaveSensitive

Bei der Einstellung DontSaveSensitive werden sensible Daten (z. B. Passwort im Verbindungsmanager) nicht gespeichert.

  • EncryptSensitiveWithUserKey

Innerhalb des Paketes werden sensible Daten mit einem Algorithmus, basierend auf dem aktuellen Benutzerprofil, verschlüsselt und beim Öffnen wieder entschlüsselt. Öffnet ein anderer User die Datei, sind keine Passwörter zu sehen UND das Paket kann nicht ausgeführt werden.

  • EncryptSensitiveWithPassword

Innerhalb des Paketes werden sensible Daten mit einem Passwort verschlüsselt. Das Paket kann von jedem geöffnet werden, die Passwörter sind allerdings nicht zu sehen. Um das Paket auszuführen, wird das Passwort benötigt.

  • EncryptAllWithPassword

Das komplette Paket wird verschlüsselt. Ohne das Passwort kann es weder geöffnet noch zum Laufen gebracht werden.

  • EncryptAllWithUserKey

Auch hier ist das komplette Paket verschlüsselt, aber wie bei „EncryptSensitiveWithUserKey“ bildet auch hier ein Schlüssel, basierend auf dem aktuellen Userprofil, die Grundlage und erlaubt nur dem User, der das Paket erstellt oder exportiert hat, den Zugriff und die Ausführung.

  • Server Storage

Die Sicherheit wird über Rollen definiert. Dieses Konstrukt ist nur bei einer Sicherung des Projekts in einer Datenbank möglich.

Diese Einstellungen können an drei unterschiedlichen Stellen gesetzt werden:

  • In den Einstellungen des Paketes:

Durch Klicken der rechten Maustaste in den freien Bereich des Control Flows im SSIS-Paket erscheint im Kontextmenü der Bereich Properties (Einstellungen).

2014-05-23_crew_Einstellungen im Paket

Abb. 3: Einstellungen im Paket

  • In den Einstellungen des Projektes (2012):

Durch Klicken der rechten Maustaste auf den Projektnamen erscheint ein Kontextmenü. Auch hier befindet sich eine Zeile mit „Einstellungen“, welche ein neues Fenster öffnet.

2014-05-23_crew_Einstellungen im Projekt

Abb. 4: Einstellungen im Projekt

Hierbei gilt es zu beachten, dass sich bei mehr als einem Paket innerhalb eines Projektes alle auf demselben Protection Level befinden müssen wie das Projekt, da ansonsten das Projekt nicht ausgeführt werden kann.

  • Über die Kommandozeile:

dtutil.exe /file “C:\testPackage.dtsx” /encrypt file; “C:\testPackage.dtsx”; 2; YourPassword

Weitere Informationen hierzu unter: http://technet.microsoft.com/en-us/library/ms141747.aspx