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:
- Clique em Iniciar , aponte para Ferramentas administrativas e, em seguida, clique em Diretiva de segurança local .
- Expanda Políticas Locais e clique em Atribuição de Direitos de Utilizador.
- No painel de detalhes, clique duas vezes em Criar objetos globais.
- Na caixa de diálogo Configuração de Diretiva de Segurança Local , clique em Adicionar.
- 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.