KB2216489 - CORRECÇÃO: Mensagem de erro quando tenta executar um pacote SSIS que contém um componente SQL Server Destino numa tarefa de fluxo de dados

Aplica-se A
Windows 7 Windows Vista SQL Server Management Studio SQL Server 2008 R2 SQL Server 2008 R2 Service Pack 1

Sintomas

Tenha em conta o seguinte cenário:

  • Criar um pacote SQL Server 2008 Integration Services R2 (SSIS) que tem um componente SQL Server Destino em uma tarefa de fluxo de dados.

  • Você tenta executar este pacote em sistemas onde o controle de conta de usuário (UAC) está habilitado (por exemplo, no Windows Vista ou no Windows 7) usando um dos seguintes métodos:

    • Business Intelligence Development Studio (BIDS)
    • SQL Server Management Studio (SSMS) Object Explorer
    • DTExec.exe
    • DTExecUI.exe

Neste cenário, poderá receber uma mensagem de erro semelhante a uma das seguintes:

Nota

[SQL Server Destino] Erro: Não é possível preparar a inserção em massa do SSIS para inserção de dados.

[SSIS. Pipeline] Error: component "SQL Server Destination" failed the pre-execute phase and returned error code 0xC0202071."

Não é possível copiar dados em volume. Poderá ter de executar este pacote como administrador.

Notas

  • Você não encontrar esses erros se executar o pacote sob a conta de administrador interna que é criada durante a instalação do sistema operacional. No entanto, receberá esta mensagem para todos os outros utilizadores, incluindo os que sejam membros do Grupo de Administradores Locais.
  • O problema não ocorre quando executa o mesmo pacote SSIS que uma tarefa SQL Server Agent.
  • A segunda mensagem de erro é gerada somente após a instalação do SQL 2008 Service Pack 2 (SP2).

Causa

Este problema ocorre em sistemas onde o UAC está ativado. Quando uma aplicação (como SSIS) é iniciada por uma conta que é membro do grupo Administradores, recebe dois tokens de segurança: um token de permissões baixas e um token de permissões elevadas. O token elevated-permissions é usado somente quando o aplicativo é explicitamente executado em uma conta de administrador usando a opção Executar como administrador . Por predefinição, o SSIS utiliza sempre o token de permissões baixas e isto causa uma falha quando o SSIS liga a um componente de Destino SQL Server.

Observação Quando você usa uma conta que não é membro do grupo Administradores local, o UAC não aparece.

Resolução

Informações do service pack para o SQL Server 2008 R2

Para resolver este problema, obtenha o service pack mais recente para o SQL Server 2008 R2. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2527041 Como obter o service pack mais recente para o SQL Server 2008 R2

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".
Este problema foi corrigido pela primeira vez no SQL Server 2008 R2 Service Pack 1 para SQL Server 2008 R2.

Solução

Para contornar esse problema, use um dos seguintes métodos:

  • Se estiver a executar o pacote a partir do SSMS, do BIDS ou do DTExecUI.exe, inicie essas ferramentas a partir da conta de administrador. Para tal, clique em Iniciar, aponte para Todos os Programas, aponte para SQL Server 2005 ou SQL Server 2008, clique com o botão direito do rato na ferramenta que está a utilizar e, em seguida, clique em Executar como administrador. Isto inicia a aplicação utilizando as permissões elevadas da conta de Administrador incorporada e o pacote é executado com êxito.

    Da mesma forma, se estiver a executar o pacote utilizando DTExec.exe, inicie-o a partir de uma linha de comandos elevada. Para fazer isso, clique em Iniciar , clique em Todos os programas , clique em Acessórios , clique com o botão direito do mouse em prompt de comando e, em seguida, clique em Executar como administrador .

    Nota Se não iniciar sessão no computador como administrador, ser-lhe-á pedido para fornecer a conta de administrador. Em resposta, digite o nome de usuário e a senha do administrador na caixa de diálogo Controle de Conta de Usuário e, em seguida, clique em OK.

  • Substitua os componentes SQL Server Destino nas Tarefas de Fluxo de Dados que estão falhando por componentes de Destino OLE DB que apontem para o mesmo gerenciador de conexões SQL Server.

  • Utilize uma conta que não seja membro do grupo Administradores local depois de atribuir permissões Criar Objetos Globais a essa conta.

    Para fazê-lo, siga estes passos:

    1. Clique em Iniciar , aponte para Ferramentas administrativas e, em seguida, clique em Diretiva de segurança local .
    2. Expanda Políticas Locais e clique em Atribuição de Direitos de Utilizador.
    3. No painel de detalhes, clique duas vezes em Criar objetos globais.
    4. Na caixa de diálogo Configuração de Diretiva de Segurança Local , clique em Adicionar.
    5. Na caixa de diálogo Selecionar Usuários ou Grupo , clique nas contas de usuário que você deseja adicionar, clique em Adicionar e, em seguida, clique em OK duas vezes.