Freigeben über


DTSProtectionLevel Enumeration

Definition

Steuert die Behandlung vertraulicher Informationen im Paket.

public enum class DTSProtectionLevel
public enum DTSProtectionLevel
type DTSProtectionLevel = 
Public Enum DTSProtectionLevel
Vererbung
DTSProtectionLevel

Felder

DontSaveSensitive 0

Vertrauliche Informationen werden nicht im Paket gespeichert. Die vertraulichen Informationen werden entfernt und durch Leerzeichen ersetzt.

EncryptAllWithPassword 3

Verschlüsselt das ganze Paket mit einem Kennwort.

EncryptAllWithUserKey 4

Verschlüsselt das gesamte Paket anhand von Schlüsseln auf Grundlage des Benutzerprofils. Das Paket kann nur von demselben Benutzer, der dasselbe Profil verwendet, geladen werden.

EncryptSensitiveWithPassword 2

Verschlüsselt nur vertrauliche, im Paket enthaltene Informationen mit einem Kennwort. Für diese Verschlüsselung wird DPAPI verwendet.

EncryptSensitiveWithUserKey 1

Verschlüsselt nur vertrauliche Eigenschaften mit Schlüsseln auf Grundlage des aktuellen Benutzers. 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 vertraulichen Informationen durch Leerzeichen ersetzt. Für diese Verschlüsselung wird DPAPI verwendet.

ServerStorage 5

Verschlüsselt das Paket in einer SQL Server msdb-Datenbank. Diese Option wird nur unterstützt, wenn ein Paket in SQL Server gespeichert wird. Sie wird nicht unterstützt, wenn ein Paket im Dateisystem gespeichert wird. Die Zugriffssteuerung, wer das Paket entschlüsseln kann, wird von SQL Server Datenbankrollen gesteuert. Weitere Informationen finden Sie unter Rollen auf Datenbankebene und Sysssispackages (Transact-SQL).

Beispiele

Im folgenden Beispiel wird ein Paket geladen, und anschließend werden mehrere Paketeigenschaften abgerufen, einschließlich des ProtectionLevel zugewiesenen Pakets.

Class PackageTest  
    {  
        static void Main(string[] args)  
        {  
            // The variable pkg points to the location of the  
            // ExecuteProcess package sample  
            // installed with the samples.  
            string pkg = @"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx";  

            Application app = new Application();  
            Package p = app.LoadPackage(pkg, null);  

            // Once the package is loaded, this sample can  
           // query on several properties  
            long cc = p.CertificateContext;  
            string cfn = p.CheckpointFileName;  
            DTSProtectionLevel pl = p.ProtectionLevel;  
            DTSPackageType dpt = p.PackageType;  

            Console.WriteLine("CertificateContext = " + cc);  
            Console.WriteLine("CheckpointFileName = " + cfn);  
            Console.WriteLine("ProtectionLevel = " + pl);  
            Console.WriteLine("PackageType = " + dpt);  
        }  
    }  
Class PackageTest  
    {  
        Shared  Sub Main(ByVal args() As String)  
            ' The variable pkg points to the location of the  
            ' ExecuteProcess package sample  
            ' installed with the samples.  
            Dim pkg As String =  "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx"   

            Dim app As Application =  New Application()   
            Dim p As Package =  app.LoadPackage(pkg,Nothing)   

            ' Once the package is loaded, this sample can  
           ' query on several properties  
            Dim cc As Long =  p.CertificateContext   
            Dim cfn As String =  p.CheckpointFileName   
            Dim pl As DTSProtectionLevel =  p.ProtectionLevel   
            Dim dpt As DTSPackageType =  p.PackageType   

            Console.WriteLine("CertificateContext = " + cc)  
            Console.WriteLine("CheckpointFileName = " + cfn)  
            Console.WriteLine("ProtectionLevel = " + pl)  
            Console.WriteLine("PackageType = " + dpt)  
        End Sub  
    }  

Beispielausgabe:

CertificateContext = 0

CheckpointFileName =

ProtectionLevel = EncryptSensitiveWithUserKey

PackageType = Standard

Hinweise

Wenn vertrauliche Informationen in einem Paket enthalten sind, werden diese vertraulichen Informationen bei Verwendung des Werts DontSaveSensitivenicht gespeichert. Dies ist der Standardwert.

Für alle Werte sind die sensiblen Daten wie folgt definiert:

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

  • Die aufgabengenerierten XML-Knoten, die mit dem Sensitive Attribut gekennzeichnet sind.

  • Jede Variable, die mit dem Sensitive Attribut gekennzeichnet ist.

Wenn Sie vertrauliche Informationen in einer Konfigurationsdatei haben, sollten Sie sie in Microsoft SQL Server speichern oder eine Zugriffssteuerungsliste (Access Control List, ACL) verwenden, um den Speicherort oder den Ordner zu sichern. Weitere Informationen finden Sie unter Erstellen von Paketkonfigurationen.

Weitere Informationen zum Festlegen von Paketschutzebenen finden Sie unter Access Control für vertrauliche Daten in Paketen.

Die Verschlüsselung erfolgt mit zwei Methoden. Die Microsoft Data Protection API (DPAPI), die Teil der Kryptografie-API (Crypto-API) ist, wird für die Schutzebenen EncryptAllWithUserKey und - EncryptSensitiveWithUserKeywerte verwendet. Die TripleDES Klasse wird für die Schutzstufen EncryptAllWithPassword und .EncryptSensitiveWithPassword

Weitere Informationen finden Sie unter TripleDES-Klasse in der .NET Framework Klassenbibliothek.

Gilt für: