DTSProtectionLevel Énumération

Définition

Contrôle la gestion d'informations sensibles dans le package.

public enum class DTSProtectionLevel
public enum DTSProtectionLevel
type DTSProtectionLevel = 
Public Enum DTSProtectionLevel
Héritage
DTSProtectionLevel

Champs

DontSaveSensitive 0

Les informations sensibles ne sont pas enregistrées dans le package. Les informations sensibles sont supprimées et remplacées par des espaces.

EncryptAllWithPassword 3

Chiffre le package entier à l'aide d'un mot de passe.

EncryptAllWithUserKey 4

Chiffre le package entier en utilisant des clés selon le profil de l'utilisateur. Seul le même utilisateur qui utilise le même profil peut charger le package.

EncryptSensitiveWithPassword 2

Chiffre à l'aide d'un mot de passe uniquement les informations sensibles contenues dans le package. DPAPI est utilisé pour ce chiffrement.

EncryptSensitiveWithUserKey 1

Chiffre les propriétés sensibles uniquement en utilisant des clés selon l'utilisateur actuel. Seul le même utilisateur qui utilise le même profil peut charger le package. Si un utilisateur différent ouvre le package, les informations sensibles sont remplacées par des espaces. DPAPI est utilisé pour ce chiffrement.

ServerStorage 5

Chiffre le package dans une base de données msdb SQL Server. Cette option est prise en charge uniquement lorsqu’un package est enregistré dans SQL Server. Elle n'est pas prise en charge lorsqu'un package est enregistré dans le système de fichiers. Le contrôle d’accès de qui peut déchiffrer le package est contrôlé par SQL Server rôles de base de données. Pour plus d’informations, consultez Database-Level Roles et sysssispackages (Transact-SQL).

Exemples

L’exemple suivant charge un package, puis récupère plusieurs propriétés de package, y compris celles ProtectionLevel affectées au package.

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  
    }  

Exemple de sortie :

CertificateContext = 0

CheckpointFileName =

ProtectionLevel = EncryptSensitiveWithUserKey

PackageType = Valeur par défaut

Remarques

Lorsque vous utilisez la valeur DontSaveSensitive, si des informations sensibles sont contenues dans un package, ces informations sensibles ne sont pas enregistrées. Il s’agit de la valeur par défaut.

Pour toutes les valeurs, les informations sensibles sont définies comme suit :

  • Partie mot de passe d’une chaîne de connexion. Toutefois, si vous choisissez une option qui chiffre tout, la chaîne de connexion entière est considérée comme sensible.

  • Nœuds XML générés par la tâche marqués avec l’attribut Sensitive .

  • Toute variable marquée avec l’attribut Sensitive .

Si vous avez des informations sensibles dans un fichier de configuration, vous devez l’enregistrer dans Microsoft SQL Server, ou utiliser une liste de contrôle d’accès (ACL) pour sécuriser l’emplacement ou le dossier. Pour plus d’informations, consultez Créer des configurations de package.

Pour plus d’informations sur la définition des niveaux de protection des packages, consultez Access Control pour les données sensibles dans les packages.

Le chiffrement est effectué à l’aide de deux méthodes. L’API De protection des données Microsoft (DPAPI), qui fait partie de l’API de chiffrement (API Crypto), est utilisée pour les niveaux de protection et EncryptAllWithUserKeyEncryptSensitiveWithUserKey. La TripleDES classe est utilisée pour les niveaux de protection de EncryptAllWithPassword et EncryptSensitiveWithPassword.

Pour plus d’informations, consultez La classe TripleDES dans la bibliothèque de classes .NET Framework.

S’applique à