Sintomas
Considere o seguinte cenário:
-
Cria um pacote de Serviços de Integração SQL Server 2008 R2 (SSIS) que tem um componente sql server Destination numa tarefa de Dataflow.
-
Tente executar este pacote em sistemas onde o Controlo de Contas de Utilizador (UAC) está ativado (por exemplo, no Windows Vista ou no Windows 7) utilizando 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 que se assemelha a uma das seguintes:
[SqL Server Destination] Erro: Não é possível preparar a inserção a granel SSIS para a inserção de dados. [SSIS. Pipeline] Erro: componente "SQL Server Destination" falhou na fase de pré-execução e devolveu o código de erro 0xC0202071." Não é possível copiar em massa dados. Pode ter de executar este pacote como administrador.
Notas
-
Não encontra estes erros se executar a embalagem sob a conta de Administrador incorporada que é criada durante a instalação do sistema operativo. Mas receberá esta mensagem para qualquer outro utilizador, incluindo aqueles que são membros do grupo de Administradores Locais.
-
O problema não ocorre quando executa o mesmo pacote SSIS que um trabalho de Agente de Servidor SQL.
-
A segunda mensagem de erro só é gerada após a instalação do Pack de Serviços SQL 2 (SP2).
Causa
Este problema ocorre em sistemas onde a UAC está ativada. Quando uma aplicação (como a SSIS) é iniciada por uma conta que é membro do grupo de Administradores, recebe dois tokens de segurança: um token de permissões baixas e um token de permissões elevadas. O token de permissões elevadas só é utilizado quando a aplicação é explicitamente executada sob uma conta de administrador utilizando a opção Executar como Administrador. Por predefinição, o SSIS usa sempre o token de permissões baixas, o que causa uma falha quando o SSIS se liga a um componente sql Server Destination.Nota Quando utiliza uma conta que não é membro do grupo de Administradores locais, a UAC não aparece.
Resolução
Informações do pacote de serviços para SQL Server 2008 R2
Para resolver este problema, obtenha o mais recente pacote de serviços para SQL Server 2008 R2. Para mais informações, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2527041 Como obter o mais recente pacote de serviços para SQL Server 2008 R2
Estado
A Microsoft confirmou que se trata de um problema nos produtos da Microsoft que estão 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 este problema, utilize um dos seguintes métodos:
-
Se estiver a executar o pacote a partir de SSMS, de BIDS ou de DTExecUI.exe, inicie essas ferramentas a partir da conta do administrador. Para isso, clique em Iniciar, aponte para Todos os Programas, aponte para SQL Server 2005 ou SQL Server 2008, clique com o botão direito 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 executa com sucesso. Da mesma forma, se estiver a executar a embalagem utilizando dTExec.exe, inicie-a a partir de uma posição de comando elevada. Para isso, clique em Iniciar, clique em Todos os Programas , clique em Acessórios,clique no comando àdireita e, em seguida, clique em Executar como administrador. AccessoriesNota Se não iniciar sessão no computador como administrador, é-lhe solicitado que forneça a conta do administrador. Em resposta, digite o nome de utilizador do administrador e a palavra-passe na caixa de diálogo do Controlo da Conta de Utilizador e, em seguida, clique em OK.
-
Substitua os componentes sql Server Destination nas Tarefas de dataflow que estão falhando com componentes de destino OLE DB que apontam para o mesmo gestor de conexão SQL Server.
-
Utilize uma conta que não seja membro do grupo de Administradores locais depois de atribuir permissões create Global Objects a essa conta. Para tal, siga estes passos:
-
Clique em Iniciar,aponte para ferramentas administrativase, em seguida, clique na Política de SegurançaLocal .
-
Expandir as Políticas Locaise, em seguida, clicar na Atribuição de Direitos de Utilizador.
-
No painel de detalhes, clique duas vezes Criar objetos globais.
-
Na caixa de diálogo de definição de política de segurança local, clique em Adicionar.
-
Na caixa de diálogo Select Users ou Group, clique nas contas do utilizador que pretende adicionar, clique em Adicionare, em seguida, clique em OK duas vezes.
-