DTSProtectionLevel Enumerazione

Definizione

Controlla la gestione di informazioni riservate nel pacchetto.

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

Campi

DontSaveSensitive 0

Le informazioni riservate non vengono salvate nel pacchetto, bensì rimosse e sostituite da spazi vuoti.

EncryptAllWithPassword 3

Esegue la crittografia dell'intero pacchetto tramite una password.

EncryptAllWithUserKey 4

Esegue la crittografia dell'intero pacchetto tramite chiavi basate sul profilo utente. Il pacchetto può essere caricato solo dallo stesso utente utilizzando lo stesso profilo.

EncryptSensitiveWithPassword 2

Esegue la crittografia solo delle informazioni riservate contenute nel pacchetto tramite una password. Per la crittografia viene utilizzato DPAPI.

EncryptSensitiveWithUserKey 1

Esegue la crittografia solo delle proprietà sensibili tramite chiavi basate sull'utente corrente. Il pacchetto può essere caricato solo dallo stesso utente utilizzando lo stesso profilo. Se un altro utente apre il pacchetto, le informazioni riservate vengono sostituite da spazi vuoti. Per la crittografia viene utilizzato DPAPI.

ServerStorage 5

Crittografa il pacchetto all'interno di un database msdb SQL Server. Questa opzione è supportata solo quando un pacchetto viene salvato in SQL Server. mentre non è supportata quando i pacchetti vengono salvati nel file system. Il controllo di accesso di chi può decrittografare il pacchetto è controllato dai ruoli del database SQL Server. Per altre informazioni, vedere Ruoli a livello di database e sysssispackages (Transact-SQL).

Esempio

Nell'esempio seguente viene caricato un pacchetto e quindi vengono recuperate diverse proprietà del pacchetto, incluso l'oggetto ProtectionLevel assegnato 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  
    }  

Esempio di output

CertificateContext = 0

CheckpointFileName =

ProtectionLevel = EncryptSensitiveWithUserKey

PackageType = Default

Commenti

Quando si usa il valore DontSaveSensitive, se le informazioni riservate sono contenute in un pacchetto, queste informazioni riservate non vengono salvate. Si tratta del valore predefinito.

Per tutti i valori, le informazioni riservate vengono definite come:

  • Parte della password di una stringa di connessione. Tuttavia, se si sceglie un'opzione che crittografa tutto, l'intera stringa di connessione verrà considerata sensibile.

  • Nodi XML generati dall'attività contrassegnati con l'attributo Sensitive .

  • Qualsiasi variabile contrassegnata con l'attributo Sensitive .

Se si dispone di informazioni riservate in un file di configurazione, è necessario salvarle in Microsoft SQL Server oppure usare un elenco di controllo di accesso (ACL) per proteggere il percorso o la cartella. Per altre informazioni, vedere Creazione di configurazioni dei pacchetti.

Per altre informazioni sull'impostazione dei livelli di protezione dei pacchetti, vedere Controllo di accesso per i dati sensibili nei pacchetti.

La crittografia viene eseguita usando due metodi. L'API Protezione dati Microsoft (DPAPI), che fa parte dell'API crittografia (API Crypto), viene usata per i livelli di protezione di EncryptAllWithUserKey e EncryptSensitiveWithUserKey. La TripleDES classe viene usata per i livelli di protezione di EncryptAllWithPassword e EncryptSensitiveWithPassword.

Per altre informazioni, vedere Classe TripleDES nella libreria di classi .NET Framework.

Si applica a