Quero executar um pacote SSIS contendo tarefas Transferir objetos do SQL Server. Os servidores envolvidos estão no mesmo domínio, mas os serviços do SQL Server estão em execução nas contas de serviço local. Portanto, o ambiente fica assim:
Domínio
Servidor1
- SQL Server em execução na conta local
- No sistema de arquivos: pacote SSIS
- No SQL Server Agent: um trabalho
Servidor 2
- SQL Server em execução na conta local
Para poder fazer logon nos dois servidores, criei uma conta de domínio para ser usada como conta de serviço. Quando uso essa conta de domínio para fazer logon no Servidor 1 e, em seguida, executar o pacote no sistema de arquivos, todas as etapas são bem-sucedidas. No entanto, quando tento adicionar o trabalho ao SQL Server, encontro um dos seguintes problemas:
Situação 1. Proprietário do trabalho: conta local; execute a etapa do SSIS como proxy para a conta do domínio . Quando defino o proprietário da tarefa como uma conta local, mas a executo como proxy da conta do domínio, a tarefa será executada com êxito, mas o pacote gerará erros como
A execução falhou com o seguinte erro: "O diretório 'LocalApplicationData' não existe.".
Esse erro pode ser corrigido através da criação de um logon com direitos de administrador para o usuário do domínio no Servidor 1, mas obviamente essa não é uma solução desejável. Adicionar a conta a um dos grupos de agentes / DTS do SQL Server também não funciona.
Situação 2. Proprietário do trabalho: conta de domínio; execute a etapa do SSIS como um proxy para a conta do domínio . Quando defino o proprietário do trabalho e o 'executar como usuário' para a etapa da conta de domínio, o trabalho não inicia, com o seguinte erro:
Não foi possível determinar se o proprietário (domínio \ usuário do domínio) do trabalho
Job name
tem acesso ao servidor (motivo: não foi possível obter informações sobre o grupo / usuário do Windows NT 'Usuário do domínio \ domínio', código de erro 0x5. [SQLSTATE 42000] (Erro 15404)) .
Acredito que o último erro ocorre porque o SQL Server é executado em uma conta local e, portanto, não pode verificar quais contas de domínio de direitos possuem.
Qual é o caminho certo para executar o trabalho? A situação 2 parece mais limpa para mim, mas parece impossível porque o SQL Server é executado em uma conta local. A situação 1 também funcionaria, mas não será possível conceder direitos administrativos a um usuário de domínio no meu SQL Server.
ATUALIZAR:
@ JonSeigel e @ Mr.Brownstone:
Parece plausível que esse problema ocorra devido à falta de permissões. No entanto, o erro é sobre a inexistência de 'LocalApplicationData' - uma das pastas geradas para cada conta. Já efetuei login no servidor com as credenciais sob as quais o pacote é executado (criando um diretório de perfil) e tentei várias combinações de permissões para o diretório de perfil. Mesmo ao conceder manualmente quase todas as permissões nesse diretório específico, recebo o erro mencionado acima.
Enquanto fazia mais pesquisas, encontrei um tópico no fórum em http://www.sqlservercentral.com/Forums/Topic391332-148-1.aspx#bm391441, que é bastante semelhante - embora sem solução.
fonte
Respostas:
Minha opinião pessoal é que a opção 1 é o caminho a percorrer. Mas não vejo necessidade de conceder acesso de administrador local à conta do domínio. Parece-me que ele requer acesso a determinadas pastas e arquivos e, portanto, você pode conceder ao usuário do domínio acesso apenas aos recursos necessários para executar o pacote com êxito. Isso pode ser feito através da caixa de diálogo de propriedades de arquivo / pasta e selecione a guia segurança - não será necessário defini-lo para todos os arquivos e pastas, pois você pode definir as permissões do diretório pai e configurá-las para substituir as propriedades filho.
Espero que isso ajude você.
fonte