DTSProtectionLevel Enumerazione

Definizione

Controlla la gestione delle informazioni sensibili nel pacchetto.

public enum class DTSProtectionLevel
public enum DTSProtectionLevel
type DTSProtectionLevel = 
Public Enum DTSProtectionLevel
Ereditarietà
DTSProtectionLevel

Campi

Nome Valore Descrizione
DontSaveSensitive 0

Le informazioni sensibili non sono salvate nel pacchetto. Le informazioni sensibili vengono rimosse e sostituite con spazi vuoti.

EncryptSensitiveWithUserKey 1

Cripta proprietà sensibili solo utilizzando chiavi basate sull'utente corrente. Solo lo stesso utente che usa lo stesso profilo può caricare il pacchetto. Se un altro utente apre il pacchetto, le informazioni sensibili vengono sostituite con spazi vuoti. Per la crittografia viene utilizzato DPAPI.

EncryptSensitiveWithPassword 2

Cripta solo le informazioni sensibili contenute nel pacchetto utilizzando una password. Per la crittografia viene utilizzato DPAPI.

EncryptAllWithPassword 3

Cripta l'intero pacchetto usando una password.

EncryptAllWithUserKey 4

Cripta l'intero pacchetto usando chiavi basate sul profilo utente. Solo lo stesso utente che usa lo stesso profilo può caricare il pacchetto.

ServerStorage 5

Cripta il pacchetto all'interno di un database msdb di SQL Server. Questa opzione è supportata solo quando un pacchetto viene salvato su SQL Server. Non è supportata quando un pacchetto viene salvato nel File System. Il controllo di accesso su chi può decifrare il pacchetto è fatto dai ruoli del database di SQL Server. Per maggiori informazioni, vedi Database-Level Ruoli e syssis package (Transact-SQL).

Esempio

Il seguente esempio carica un pacchetto e poi recupera diverse proprietà del pacchetto, inclusa quella ProtectionLevel assegnata al pacchetto.

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  
    }  

Output di esempio:

CertificateContext = 0

CheckpointFileName =

ProtectionLevel = EncrypteSensitiveWithUserKey

PackageType = predefinito

Commenti

Quando si utilizza il valore DontSaveSensitive, se informazioni sensibili sono contenute in un pacchetto, queste informazioni sensibili non vengono salvate. Questo è il valore predefinito.

Per tutti i valori, le informazioni sensibili sono definite come:

  • La parte della password di una stringa di connessione. Tuttavia, se scegli un'opzione che cripta tutto, l'intera stringa di connessione sarà considerata sensibile.

  • I nodi XML generati dal compito che sono etichettati con l'attributo Sensitive .

  • Qualsiasi variabile contrassegnata con l'attributo Sensitive .

Se hai informazioni sensibili in un file di configurazione, dovresti salvarle su Microsoft SQL Server o utilizzare una lista di controllo accessi (ACL) per proteggere la posizione o la cartella. Per altre informazioni, vedere Creazione di configurazioni dei pacchetti.

Per maggiori informazioni sull'impostazione dei livelli di protezione dei pacchetti, vedi Controllo di accesso for Sensitive Data in Packages.

La crittografia avviene utilizzando due metodi. L'API di Protezione dei Dati Microsoft (DPAPI), che fa parte dell'API di Crittografia (Crypto API), viene utilizzata per i livelli di protezione di EncryptAllWithUserKey e EncryptSensitiveWithUserKey. La TripleDES classe è utilizzata per i livelli di protezione di EncryptAllWithPassword e EncryptSensitiveWithPassword.

Per ulteriori informazioni, consulta TripleDES Class nella .NET Framework Class Library.

Si applica a