Establecer el nivel de protección de los paquetes

El nivel de protección de un paquete de SQL Server 2005 Integration Services (SSIS) se establece cuando se desarrolla por primera vez en Business Intelligence Development Studio. Más adelante, al implementar, importar o exportar el paquete desde Integration Services en SQL Server Management Studio, o copiarlo de Business Intelligence Development Studio a SQL Server, el almacén de paquetes de SSIS o el servicio del sistema de archivos, puede actualizar su nivel de protección. Por ejemplo, si crea y guarda paquetes en sus equipos con una de las opciones de nivel de protección de clave del usuario, es probable que necesite cambiar el nivel de protección al entregar el paquete a otros usuarios; de lo contrario, no podrán abrirlo.

En la tabla siguiente se describen los niveles de protección que proporciona Integration Services. Los valores entre paréntesis son valores de DTSProtectionLevel. Estos valores aparecen en la ventana Propiedades que se utiliza para configurar las propiedades del objeto del paquete al trabajar con paquetes en Business Intelligence Development Studio.

Nivel de protección Descripción

No guardar la información confidencial (DontSaveSensitive)

Suprime la información confidencial del paquete al guardarlo. Este nivel de protección no cifra, sino que impide que se guarden con el paquete las propiedades marcadas como confidenciales y, en consecuencia, impide que los datos confidenciales estén disponibles para otros usuarios. Si un usuario distinto abre el paquete, aparecerán espacios en blanco en el lugar de la información confidencial y usuario deberá suministrar la información confidencial.

Cifrar todos los datos con una contraseña (EncryptAllWithPassword)

Cifra el paquete completo con una contraseña. El paquete se cifra con una contraseña suministrada por el usuario al crear o exportar el paquete. Para abrir el paquete en el Diseñador SSIS o ejecutarlo con la utilidad del símbolo del sistema dtexec, el usuario debe proporcionar la contraseña del paquete. Sin la contraseña, el usuario no tiene acceso al paquete ni lo puede ejecutar.

Cifrar todos los datos con una clave de usuario (EncryptAllWithUserKey)

Cifra el paquete completo con una clave basada en el perfil del usuario. Sólo puede cargar el paquete ese usuario, utilizando el mismo perfil. El paquete se cifra con una clave basada en el usuario que creó o exportó el paquete. El usuario que creó o exportó el paquete es el único que puede abrirlo en el Diseñador SSIS o ejecutarlo con la utilidad del símbolo del sistema dtexec.

Cifrar la información confidencial con una contraseña (EncryptSensitiveWithPassword)

Cifra únicamente la información confidencial del paquete con una contraseña. Para el cifrado, se utiliza DPAPI. Los datos confidenciales se guardan como parte del paquete, pero los datos se cifran utilizando una contraseña que el usuario actual suministra al crear o exportar el paquete. Para abrir el paquete en el Diseñador SSIS, el usuario debe proporcionar la contraseña del paquete. Si no se proporciona la contraseña, el paquete se abre sin los datos confidenciales y el usuario actual debe proporcionar valores nuevos para estos datos. Si el usuario intenta ejecutar el paquete sin proporcionar la contraseña, el paquete no se ejecutará. Para obtener más información acerca de las contraseñas y la ejecución desde la línea de comandos, vea dtexec (utilidad).

Cifrar la información confidencial con una clave de usuario (EncryptSensitiveWithUserKey)

Cifra únicamente la información confidencial del paquete por medio de claves basadas en el usuario actual. Sólo puede cargar el paquete ese usuario, utilizando el mismo perfil. Si un usuario distinto abre el paquete, aparecerán espacios en blanco en el lugar de la información confidencial y usuario actual deberá suministrar valores nuevos para los datos confidenciales. Si el usuario intenta ejecutar el paquete, se generará un error. Para el cifrado, se utiliza DPAPI.

Basar el cifrado en el almacenamiento del servidor (ServerStorage)

Protege el paquete completo utilizando funciones de base de datos de SQL Server. Esta opción sólo se admite cuando se guarda un paquete en la base de datos SQL Server msdb. No se admite cuando el paquete se guarda en el sistema de archivos desde Business Intelligence Development Studio.

Los niveles de protección de paquetes que cifran paquetes con contraseñas requieren que el usuario también suministre una contraseña. Si cambia el nivel de protección de uno que no utilice contraseñas a otro que sí lo haga, se le pedirá una contraseña.

El cifrado, tal como se utiliza en los niveles de protección de paquetes, se lleva a cabo con la API Microsoft Data Protection (DPAPI), que forma parte de la API de criptografía (CryptoAPI).

Integration Services utiliza el algoritmo de cifrado Triple DES con una longitud de clave de 192 bits, disponible en la biblioteca de clases de .NET Framework (FCL), para los niveles de protección que utilizan una contraseña.

Para los niveles de protección que utilizan una clave de usuario, Integration Services utiliza estándares DPAPI. Para obtener más información acerca de DPAPI, vea la MSDN Library en https://msdn.microsoft.com/library.

Cuando se utiliza el nivel de protección No guardar la información confidencial (DontSaveSensitive), no se guarda la información confidencial del paquete.

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

  • La parte de contraseña de una cadena de conexión. Sin embargo, si elige una opción que cifra todo, la cadena de conexión completa se considerará confidencial.
  • Los nodos XML generados por la tarea y etiquetados como confidenciales. El etiquetado de los nodos XML está controlado por Integration Services y los usuarios no lo pueden cambiar.
  • Todas las variables marcadas como confidenciales. El marcado de las variables está controlado por Integration Services.

Los paquetes guardados en la base de datos msdb también se pueden proteger utilizando las funciones fijas de nivel de base de datos. Integration Services incluye tres funciones fijas de nivel de base de datos para asignar permisos a paquetes: db_dtsadmin, db_dtsltduser y db_dtsoperator. Para obtener más información, vea Funciones de Integration Services y Funciones en el nivel de base de datos.

Vea también

Tareas

Importar y exportar paquetes
Cómo importar un paquete mediante el servicio Integration Services
Cómo exportar un paquete mediante el servicio Integration Services

Conceptos

Paquetes de Integration Services
Consideraciones de seguridad para Integration Services

Ayuda e información

Obtener ayuda sobre SQL Server 2005