Compartir a través de


No se puede preparar la inserción masiva de SSIS para la inserción de datos en sistemas habilitados para UAC

Este artículo le ayuda a resolver el problema que se produce al intentar ejecutar un paquete SSIS en sistemas en los que el Control de cuentas de usuario (UAC) está habilitado.

Versión del producto original: SQL Server
Número de KB original: 2009672

Síntomas

Imagine la siguiente situación:

  • Cree un paquete de SQL Server Integration Services (SSIS) que tenga un componente de destino de SQL Server dentro de una tarea de flujo de datos.

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

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

En este escenario, puede recibir un mensaje de error similar al siguiente:

destino de SQL Server] Error: no se puede preparar la inserción masiva de SSIS para la inserción de datos. [SSIS. Pipeline] Error: el componente "SQL Server Destination" produjo un error en la fase de ejecución previa y devolvió el código de error 0xC0202071.

Nota:

No recibirá este error 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 miembros del grupo Administradores locales.

El problema no se produce cuando se ejecuta el mismo paquete SSIS que un trabajo de Agente SQL Server.

Después de instalar SQL 2008 Service Pack 2, el texto del DTS_E_BULKINSERTAPIPREPARATIONFAILED de error (0xC0202071) se ha cambiado a: No se pueden copiar datos de forma masiva. Es posible que tenga que ejecutar este paquete como administrador.

Este cambio se realizó para facilitar la comprensión de la acción correctiva necesaria, como se describe en la sección de resolución de esta BASE de conocimiento.

Causa

En los sistemas donde UAC está habilitado, cuando una cuenta que es miembro del grupo Administradores inicia una aplicación (como SSIS), obtiene dos tokens de seguridad, uno con privilegios bajos y otro con privilegios elevados. El token con privilegios elevados solo se usa cuando la aplicación se ejecuta explícitamente en una cuenta de administrador eligiendo la opción Ejecutar como administrador . De forma predeterminada, SSIS siempre usa el token con privilegios bajos, lo que produce un error al conectarse a un destino de SQL.

Solución

Use uno de los métodos siguientes para solucionar el problema:

  • Si ejecuta el paquete desde SQL Server Management Studio (SSMS) o Business Intelligence Development Studio (BIDS) o DTExecUI.exe, inicie esas herramientas en la cuenta de administrador con privilegios elevados. Para ello, haga clic en Inicio, seleccione Todos los programas, SQL Server 2005 o SQL Server 2008, haga clic con el botón derecho en la herramienta que usa y, a continuación, haga clic en Ejecutar como administrador. Esto inicia la aplicación con privilegios elevados de la cuenta de administrador integrada y el paquete se ejecuta correctamente.

    Del mismo modo, si ejecuta el paquete mediante DTExec.exe iniciarlo desde un símbolo del sistema con privilegios elevados. Para iniciar el símbolo del sistema con privilegios elevados, haga clic en Inicio, todos los programas, accesorios, símbolo del sistema y, 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. Cuando se le pida que proporcione la cuenta de administrador, escriba el nombre de usuario y la contraseña del administrador en el cuadro de diálogo Control de cuentas de usuario. A continuación, haga clic en Aceptar.

  • Reemplace los componentes de destino de SQL Server en las tareas de flujo de datos que producen errores con los componentes de destino de OLE DB que apuntan al mismo administrador de conexiones SQL Server.

  • Use una cuenta que no sea miembro del grupo de administradores local después de asignar el derecho de usuario 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 seguridad local.
    2. Expanda Directivas localesy, a continuación, haga clic en Asignación de derechos de usuario.
    3. En el panel derecho, 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 desea agregar, haga clic en Agregary, a continuación, haga clic en Aceptar.
    6. Haga clic en Aceptar.

Nota:

Cuando se usa una cuenta que no es miembro del grupo de administradores local, UAC no entra en juego.

Más información