KB2216489 - CORRECCIÓN: mensaje de error al intentar ejecutar un paquete SSIS que contiene un componente de destino SQL Server en una tarea de flujo de datos

Se aplica a
Windows 7 Windows Vista SQL Server Management Studio SQL Server 2008 R2 SQL Server 2008 R2 Service Pack 1

Síntomas

Tenga en cuenta el siguiente escenario:

  • 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 datos.

  • Intenta ejecutar este paquete en sistemas con el Control de cuentas de usuario (UAC) habilitado (por ejemplo, en Windows Vista o en Windows 7) utilizando uno de los métodos siguientes:

    • Business Intelligence Development Studio (BIDS)
    • SQL Server Management Studio (SSMS) Explorador de objetos
    • DTExec.exe
    • DTExecUI.exe

En esta situación, puede recibir un mensaje de error similar al siguiente:

Nota

[Destino de SQL Server] Error: No se puede preparar la inserción masiva de SSIS para la inserción de datos.

[SSIS. Canalización] Error: el componente "Destino SQL Server" falló en la fase de ejecución previa y devolvió el código de error 0xC0202071".

No se pueden copiar datos de forma masiva. Es posible que deba ejecutar este paquete como administrador.

Notas

  • No se producen estos errores si ejecuta el paquete en la cuenta de administrador integrada que se crea durante la instalación del sistema operativo. Pero recibirá este mensaje para cualquier otro usuario, incluidos los que son miembros del grupo Administradores locales.
  • El problema no se produce cuando se ejecuta el mismo paquete SSIS como un trabajo del Agente SQL Server.
  • El segundo mensaje de error se genera solo después de instalar SQL 2008 Service Pack 2 (SP2).

Causa

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

Nota Al usar una cuenta que no es miembro del grupo de administradores locales, el UAC no aparece.

Resolución

Información del 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 la versión más reciente del Service Pack 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 "Aplicable a".
Este problema se corrigió por primera vez en SQL Server 2008 R2 Service Pack 1 para SQL Server 2008 R2.

Solución alternativa

Para resolver este problema, utilice uno de los métodos siguientes:

  • Si ejecuta el paquete desde SSMS, desde BIDS o desde DTExecUI.exe, inicie esas herramientas desde la cuenta de administrador. Para ello, haga clic en Inicio, seleccione Todos los programas, seleccione SQL Server 2005 o SQL Server 2008, haga clic con el botón derecho en la herramienta que esté utilizando y luego haga clic en Ejecutar como administrador. Esto inicia la aplicación mediante los permisos elevados de la cuenta de administrador integrada y el paquete se ejecuta correctamente.

    De forma similar, si ejecuta el paquete mediante DTExec.exe, inícielo desde un símbolo del sistema con privilegios elevados. Para ello, haga clic en Inicio, Todos los programas, Accesorios, haga clic con el botón derecho en Símbolo del sistema y luego 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 el flujo de datos Tareas con errores con componentes de destino OLE DB que apuntan al mismo administrador de conexiones de SQL Server.

  • Utilice una cuenta que no sea miembro del grupo de administradores locales después de asignar los permisos Crear objetos globales a esa cuenta.

    Para hacerlo, siga estos pasos.

    1. Haga clic en Inicio, apunte a Herramientas administrativas y luego haga clic en Directiva de seguridad local.
    2. Expanda Directivas locales y, 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 Agregar y, después, haga clic en Aceptar dos veces.