KB2216489: mensaje de error al intentar ejecutar un paquete de SSIS que contiene un componente de destino de SQL Server en una tarea de flujo de bits

Se aplica a: Windows 7Windows VistaSQL Server Management Studio

Síntomas


Imagine la siguiente situación:
  • Crea un paquete de SQL Server 2008 Integration Services R2 (SSIS) que tiene un componente de destino de SQL Server en una tarea de flujo de entrada.
  • Intenta ejecutar este paquete en sistemas donde el control de cuentas de usuario (UAC) está habilitado (por ejemplo, en Windows Vista o Windows 7) con uno de los siguientes métodos:
    • Business Intelligence Development Studio (BIDS)
    • Explorador de objetos de SQL Server Management Studio (SSMS)
    • DTExec.exe
    • DTExecUI.exe
En este escenario, puede recibir un mensaje de error similar a uno de los siguientes:
[Destino de SQL Server] Error: no se puede preparar la inserción masiva de SSIS para la inserción de datos. SSIS. Error de canalización]: no se pudo completar el componente "destino de SQL Server" en la fase de preejecución y devolvió el código de error 0xC0202071 ". No se pueden copiar datos de forma masiva. Es posible que tenga que ejecutar este paquete como administrador.
Notas
  • No se producen estos errores si ejecuta el paquete en la cuenta de administrador integrada que se creó durante la instalación del sistema operativo. Pero recibirá este mensaje para cualquier otro usuario, incluidos aquellos que sean miembros del grupo de administradores local.
  • El problema no se produce cuando ejecuta el mismo paquete de SSIS que un trabajo de Agente SQL Server.
  • El segundo mensaje de error solo se genera después de instalar SQL 2008 Service Pack 2 (SP2).

Causa


Este problema se produce en los sistemas donde UAC está habilitado. Cuando una aplicación (como SSIS) se inicia mediante una cuenta que es miembro del grupo administradores, recibe dos tokens de seguridad: un token con permisos bajos y un token de permisos elevados. El token de permisos elevados solo se usa cuando la aplicación se ejecuta de forma explícita en una cuenta de administrador mediante la opción Ejecutar como administrador . De forma predeterminada, SSIS siempre usa el símbolo de permisos bajos, lo que provoca un error cuando SSIS se conecta a un componente de destino de SQL Server.Nota Cuando usa una cuenta que no es miembro del grupo de administradores locales, UAC no aparece.

Resolución


Información de Service Pack para SQL Server 2008 R2

Para resolver este problema, obtenga el Service Pack más reciente para SQL Server 2008 R2. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2527041 Cómo obtener el Service Pack más reciente para SQL Server 2008 R2

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "se aplica a". Este problema se corrigió por primera vez en SQL Server 2008 R2 Service Pack 1 para SQL Server 2008 R2.

Solución alternativa


Como solución alternativa para este problema, utilice uno de los métodos siguientes:
  • Si está ejecutando el paquete de SSMS, de BIDS o de DTExecUI. exe, inicie estas herramientas desde la cuenta de administrador. Para ello, haga clic en Inicio, elija todos los programas, seleccione SQL server 2005 o SQL Server 2008, haga clic con el botón secundario en la herramienta que está usando y, a continuación, haga clic en Ejecutar como administrador. Esto inicia la aplicación con los permisos elevados de la cuenta de administrador integrada y el paquete se ejecuta correctamente. De forma similar, si está ejecutando el paquete usando DTExec. exe, inícielo desde un símbolo del sistema con privilegios elevados. Para ello, haga clic en Inicio, seleccione todos los programas, accesorios, haga clic con el botón derecho en símbolo del sistemay, a continuación, haga clic en Ejecutar como administrador.Nota Si no inicia sesión en el equipo como administrador, se le pedirá que proporcione la cuenta de administrador. En respuesta, escriba el nombre de usuario y la contraseña del administrador en el cuadro de diálogo control de cuentas de usuario y, a continuación, haga clic en Aceptar.
  • Reemplace los componentes de destino de SQL Server en las tareas de flujo de entrada que no superan los componentes de destino de OLE DB que apuntan al mismo administrador de conexión de SQL Server.
  • Use una cuenta que no sea miembro del grupo de administradores locales después de asignar permisos para crear objetos globales a esa cuenta. Para ello, siga estos pasos:
    1. Haga clic en Inicio, seleccione herramientas administrativasy, a continuación, haga clic en Directiva de seguridadlocal.
    2. Expanda Directivas localesy, a continuación, haga clic en asignación de derechos de usuario.
    3. En el panel de detalles, haga doble clic en crear objetos globales.
    4. En el cuadro de diálogo configuración de directiva de seguridad local , haga clic en Agregar.
    5. En el cuadro de diálogo Seleccionar usuarios o grupo , haga clic en las cuentas de usuario que desee agregar, haga clic en Agregary, a continuación, haga clic en Aceptar dos veces.