DTSProtectionLevel Enumeración

Definición

Controla el manejo de información confidencial en el paquete.

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

Campos

DontSaveSensitive 0

La información sensible no se guarda en el paquete. La información confidencial se quita y se reemplaza con espacios en blanco.

EncryptAllWithPassword 3

Cifra el paquete completo utilizando una contraseña.

EncryptAllWithUserKey 4

Cifra el paquete completo mediante claves basadas en el perfil de usuario. Solo el mismo usuario, y con el mismo perfil, puede cargar el paquete.

EncryptSensitiveWithPassword 2

Solo se cifra la información confidencial contenida en el paquete mediante una contraseña. Para el cifrado, se utiliza DPAPI.

EncryptSensitiveWithUserKey 1

Cifra propiedades confidenciales únicamente mediante claves basadas en el usuario actual. Solo el mismo usuario, y con el mismo perfil, puede cargar el paquete. Si un usuario distinto abre el paquete, aparecerán espacios en blanco en el lugar de la información confidencial. Para el cifrado, se utiliza DPAPI.

ServerStorage 5

Cifra el paquete dentro de una base de datos msdb de SQL Server. Esta opción solo se admite cuando se guarda un paquete en SQL Server. No se admite cuando un paquete se guarda en el sistema de archivos. El control de acceso de quién puede descifrar el paquete se controla mediante SQL Server roles de base de datos. Para obtener más información, consulte Roles de nivel de base de datos y sysssispackages (Transact-SQL).

Ejemplos

En el ejemplo siguiente se carga un paquete y, a continuación, se recuperan varias propiedades de paquete, incluida la ProtectionLevel asignada al paquete.

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  
    }  

Salida del ejemplo:

CertificateContext = 0

CheckpointFileName =

ProtectionLevel = EncryptSensitiveWithUserKey

PackageType = Valor predeterminado

Comentarios

Cuando se usa el valor DontSaveSensitive, si la información confidencial está contenida en un paquete, esta información confidencial no se guarda. Este es el valor predeterminado.

Para todos los valores, la información confidencial se define como:

  • Parte de la contraseña de una cadena de conexión. Sin embargo, si elige una opción que cifra todo, toda la cadena de conexión se considerará confidencial.

  • Nodos XML generados por tareas que se etiquetan con el Sensitive atributo .

  • Cualquier variable marcada con el Sensitive atributo .

Si tiene información confidencial en un archivo de configuración, debe guardarla en Microsoft SQL Server o usar una lista de control de acceso (ACL) para proteger la ubicación o carpeta. Para obtener más información, vea Crear configuraciones de paquetes.

Para obtener más información sobre cómo establecer los niveles de protección de paquetes, consulte Access Control para datos confidenciales en paquetes.

El cifrado se realiza mediante dos métodos. La API de protección de datos de Microsoft (DPAPI), que forma parte de cryptography API (Crypto API), se usa para los niveles de protección de EncryptAllWithUserKey y EncryptSensitiveWithUserKey. La TripleDES clase se usa para los niveles de protección de EncryptAllWithPassword y EncryptSensitiveWithPassword.

Para obtener más información, vea Clase TripleDES en la biblioteca de clases de .NET Framework.

Se aplica a