Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Paquete de SSIS no se ejecuta cuando se llama desde un paso de trabajo de agente de SQL Server

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 918760
Si usted es un cliente de Small Business, encontrar adicionales de solución de problemas y una formación en el Soporte técnico para pequeñas empresas .
Síntomas
Cuando se llama a un paquete de Microsoft SQL Server 2005 Integration Services (SSIS) de un paso de trabajo de agente de SQL Server, no se ejecuta el paquete SSIS. Sin embargo, si no se modifique el paquete SSIS, se ejecutará correctamente fuera de agente de SQL Server.
Solución
Para resolver este problema, utilice uno de los métodos siguientes. El método más adecuado depende de medio ambiente y la razón por la que el paquete produjo un error. Motivos por los que puede que haya fallado el paquete son los siguientes:
  • La cuenta de usuario que se utiliza para ejecutar el paquete con el agente de SQL Server difiere del autor del paquete original.
  • La cuenta de usuario no tiene los permisos necesarios para realizar conexiones o para tener acceso a recursos fuera del paquete SSIS.
El paquete puede no funcionar en las situaciones siguientes:
  • El usuario actual no puede descifrar los secretos del paquete. Esta situación puede ocurrir si la cuenta actual o la cuenta de ejecución difiere del autor del paquete original y establecida en ProtectionLevel del paquete permite descifrar los secretos en el paquete al usuario actual.
  • Una conexión de SQL Server que utiliza seguridad integrada se produce un error debido a que el usuario actual no tiene los permisos necesarios.
  • Acceso a los archivos se produce un error debido a que el usuario actual no tiene los permisos necesarios para escribir en el recurso compartido de archivos que tiene acceso connection manager. Por ejemplo, esta situación puede presentarse con los proveedores de registro de texto que no utilizan un inicio de sesión y una contraseña. Esta situación también puede presentarse con cualquier tarea que depende el Administrador de conexión de archivos, por ejemplo, una tarea de sistema de archivos SSIS.
  • Configuración de paquetes SSIS en función del registro utiliza las claves del Registro HKEY_CURRENT_USER. Las claves del Registro HKEY_CURRENT_USER son específicos del usuario.
  • Una tarea o un administrador de conexión requiere que la cuenta de usuario actual tiene los permisos correctos.
Método 1: Utilizar una cuenta de proxy de agente de SQL Server
Cree una cuenta de proxy de agente de SQL Server. Esta cuenta de proxy debe utilizar una credencial que permite que SQL Server Agent se ejecute el trabajo en la cuenta que creó el paquete o como una cuenta que tenga los permisos necesarios.

Este método funciona para descifrar los secretos y satisface los requisitos claves por el usuario. Sin embargo, este método puede han limitado éxito porque las claves de usuario de paquete SSIS implican el usuario actual y el equipo actual. Por lo tanto, si mueve el paquete a otro equipo, este método puede todavía fallar, incluso si el paso de trabajo utiliza la cuenta de proxy correcta.

Método 2: Establecer la propiedad ProtectionLevel de paquete de SSIS en ServerStorage
Cambie la propiedad de paquete SSIS ProtectionLevel a ServerStorage. Esta opción almacena el paquete en una base de datos de SQL Server y permite el control de acceso a través de las funciones de base de datos de SQL Server.

Método 3: Establecer la propiedad ProtectionLevel de paquete de SSIS en EncryptSensitiveWithPassword
Cambie la propiedad de paquete SSIS ProtectionLevel a EncryptSensitiveWithPassword. Esta configuración utiliza una contraseña para el cifrado. A continuación, puede modificar la línea de comandos del paso de trabajo de agente de SQL Server para incluir esta contraseña.

Método 4: Los archivos de configuración de paquete de SSIS de uso
Utilice los archivos de configuración de paquete SSIS para almacenar información confidencial y, a continuación, guarde estos archivos de configuración en una carpeta segura. A continuación, puede cambiar la propiedad ProtectionLevel a DontSaveSensitive para que el paquete no está cifrado y no intenta guardar secretos en el paquete. Cuando se ejecuta el paquete SSIS, la información necesaria se carga desde el archivo de configuración.Asegúrese de que los archivos de configuración están protegidos adecuadamente si contienen información confidencial.

Método 5: Crear una plantilla de paquete
Para la resolución a largo plazo, crear una plantilla de paquete que utiliza un nivel de protección que difiere de la configuración predeterminada. Este problema no ocurrirá en el futuro los paquetes.
Estado
Este comportamiento es por diseño.
Información avanzada

Pasos para reproducir el problema

  1. Inicie sesión como un usuario que no sea parte del grupo de SQLServer2005SQLAgentUser. Por ejemplo, puede crear un usuario local.
  2. Cree un paquete SSIS y, a continuación, agregue una tarea de ExecuteSQL. Utilice un administrador de conexión OLE DB para el archivo de msdb local mediante el uso de la siguiente cadena: 'La autenticación de Windows'-SQLSourceType: "Entrada directa"-SQLStatement: "sp_who"
  3. Ejecute el paquete para asegurarse de que se ejecuta con éxito.
  4. Tenga en cuenta que la propiedad ProtectionLevel se establece en EncryptSensitiveWithPassword.
  5. Crear un trabajo del agente de SQL Server y un paso de trabajo. En el Ejecutar como Haga clic en Servicio de agente de SQL Server Para ejecutar el paso del trabajo.
El texto en el historial de trabajos del agente de SQL Server muestra información similar al siguiente:

Ejecutar como usuario: DOMINIO\nombre de usuario. Error en la ejecución del paquete. Error en el paso.

Descifrar los secretos de paquete

El valor predeterminado para el paquete SSIS propiedad ProtectionLevel es EncryptSensitiveWithUserKey. Cuando se guarda el paquete, SSIS cifra sólo las partes del paquete que contienen propiedades que están marcada como "confidenciales," por ejemplo, contraseñas, los nombres de usuario y las cadenas de conexión. Por lo tanto, cuando se vuelve a cargar el paquete, el usuario actual debe cumplir los requisitos de cifrado de las propiedades entre mayúsculas y minúsculas para descifrarse. Sin embargo, el usuario actual no tiene que satisfacer los requisitos de cifrado para cargar el paquete. Cuando ejecuta el paquete a través de un paso de trabajo de agente de SQL Server, la cuenta predeterminada es la cuenta de servicio de agente de SQL Server. La cuenta predeterminada es más probable es que un usuario distinto del autor del paquete. Por lo tanto, el paso de trabajo de agente de SQL Server puede cargar y comience a ejecutar el paso del trabajo, pero se produce un error en el paquete porque no se puede completar una conexión. Por ejemplo, el paquete no puede completar una conexión OLE DB o una conexión FTP. Se produce un error en el paquete porque no puede descifrar las credenciales que debe tener al conectar.

Importante Tenga en cuenta el proceso de desarrollo y el medio ambiente para determinar las cuentas que se necesitan y se utilizan en cada equipo. El valor de EncryptSensitiveWithUserKey de la propiedad ProtectionLevel es una configuración eficaz. Esta configuración no debe ser descontada debido a que hace que las complicaciones de implementación en un principio. Puede cifrar los paquetes cuando está conectado a la cuenta adecuada. También puede utilizar la utilidad de línea de comandos de SSIS de Dtutil.exe para cambiar los niveles de protección mediante el uso de un archivo .cmd y el subsistema de comando de agente de SQL Server. Por ejemplo, siga estos pasos. Debido a que puede utilizar la utilidad de Dtutil.exe en archivos por lotes y bucles, puede seguir estos pasos para varios paquetes al mismo tiempo.
  1. Modificar el paquete que desea cifrar mediante una contraseña.
  2. Use la utilidad de Dtutil.exe a través de un Sistema operativo (cmd Exec) Paso de trabajo de agente de SQL Server para cambiar la propiedad ProtectionLevel a EncryptSensitiveWithUserKey. Este proceso implica descifrar el paquete utilizando la contraseña y, a continuación, volver a cifrar el paquete. La clave de usuario que se utiliza para cifrar el paquete es el paso de trabajo de agente de SQL Server en elEjecutar como lista.

    Nota Dado que la clave incluye el nombre de usuario y el nombre del equipo, puede limitarse el efecto de mover los paquetes a otro equipo.

Asegúrese de que dispone de información de error acerca del error de paquete SSIS detallada

En lugar de basarse en los detalles limitados en el historial de trabajos del agente de SQL Server, puede utilizar SSIS registro para asegurarse de que tiene información de error acerca del error de paquete SSIS. También puede ejecutar el paquete mediante el comando de subsistema de exec en lugar del comando de subsistema SSIS.

Acerca del registro de SSIS

Los proveedores de registro y registro SSIS le permiten capturar detalles acerca de la ejecución del paquete y errores. De forma predeterminada, el paquete no registra información. Debe configurar el paquete para registrar información. Cuando configure el paquete para registrar la información, se mostrará información detallada que se parece al siguiente. En este caso, sabrá que es un problema de permisos:

OnError, nombre de dominio, nombreDeDominio\nombreDeUsuario, FTP Task,{C73DE41C-D0A6-450A-BB94-DF6D913797A1},{2F0AF5AF-2FFD-4928-88EE-1B58EB431D74},4/28/2006 1: 51: 59 PM, 4/28/2006: 1: 51: 59 PM,-1073573489, 0 x, no se puede conectar a servidor FTP con "FTP Connection Manager".

OnError, nombre de dominio, nombreDeDominio\nombreDeUsuario, Execute SQL Task,{C6C7286D-57D4-4490-B12D-AC9867AE5762},{F5761A49-F2F9-4575-9E2B-B3D381D6E1F3},4/28/2006 4: 07: 00 P.M., 4/28/2006: 4: 07: 00 PM,-1073573396, 0 x, no se pudo establecer conexión "user01.msdb". Conexión no esté configurado correctamente o no puede tener los permisos adecuados en esta conexión.

Acerca del comando de subsistema de exec y mostrar la información de

Al usar el método de comando de subsistema de exec, agregar modificadores de registro a la línea de comandos SSIS para llamar al archivo ejecutable de línea de comandos de SSIS de Dtexec.exe de consola detallado. Además, utilizar la función de trabajo avanzadas del archivo de salida. También puede utilizar el Incluir salida de paso en el historial opción para redirigir la información de registro en un archivo o en el historial de trabajos del agente de SQL Server.

El siguiente es un ejemplo de una línea de comandos:

dtexec.exe /FILE "C:\_work\SSISPackages\ProtectionLevelTest\ProtectionLevelTest\AgentTesting.dtsx" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF  /REPORTING V  /CONSOLELOG NCOSGXMT


El registro de /console Devuelve detalles similares a los siguientes:

Error: 2006-04-27 18:13:34.76   Code: 0xC0202009   Source: AgentTesting Connection manager "(local).msdb"   Description: An OLE DB error has occurred. Error code: 0x80040E4D.An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80040E4D  Description: "Login failed for user 'DOMAINNAME\username'.".End Error


Error: 2006-04-28 13:51:59.19   Code: 0xC0016016   Source:     Description: Failed to decrypt protected XML node "DTS:Property" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.End Error


Log:     Name: OnError     Computer: COMPUTERNAME     Operator: DOMAINNAME\username     Source Name: Execute SQL Task     Source GUID: {C6C7286D-57D4-4490-B12D-AC9867AE5762}     Execution GUID: {7AFE3D9E-5F73-42F0-86FE-5EFE264119C8}     Message: Failed to acquire connection "(local).msdb". Connection may not be configured correctly or you may not have the right permissions on this connection.     Start Time: 2006-04-27 18:13:34     End Time: 2006-04-27 18:13:34End Log
Referencias
Para obtener más información acerca de un problema similar, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
904800Recibe un mensaje de error "Error al cargar" cuando intenta ejecutar un paquete de SQL Server 2005 Integration Services en SQL Server 2005
Para obtener más información acerca de cómo emplear la utilidad de Dtutil.exe en las operaciones por lotes, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
906562Cómo utilizar la utilidad dtutil (Dtutil.exe) para establecer el nivel de protección de un lote de los paquetes de SQL Server Integration Services (SSIS) en SQL Server 2005
Para obtener más información acerca de cómo crear plantillas de paquetes, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
908018Cómo crear una plantilla de paquete en SQL Server Business Intelligence Development Studio


Para obtener más información acerca de la seguridad de los paquetes SSIS y la propiedad ProtectionLevel , vea el tema "Consideraciones de seguridad para Integration Services" en los libros en pantalla de SQL Server 2005.

Por desgracia, los usuarios no son conscientes de que predeterminados de paso de trabajo de agente coloquen en este estado.Para obtener más información acerca de los servidores proxy de agente de SQL Server y SSIS, vea los temas siguientes en los libros en pantalla de SQL Server 2005:
  • Programar la ejecución del paquete en SQL Server Agent
  • Creación de servidores proxy de agente de SQL Server

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 918760 - Última revisión: 12/03/2012 05:58:00 - Revisión: 3.0

Microsoft SQL Server 2008 Service Pack 1, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2005 Service Pack 3, Microsoft SQL Server 2005 Service Pack 2, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems

  • kbsqlsetup kbprb kbsql2005ssis kbsql2005setup kbexpertiseinter kbexpertiseadvanced kbtshoot kbmt KB918760 KbMtes
Comentarios
iv> ="https://c.microsoft.com/ms.js"> ml>