SQL Server Jobs com SSIS packages – Failed to decrypt protected XML node “DTS:Password” with error 0x8009000B
Há alguns dias atrás eu estava implantando alguns Packages (DTSX) no Integration Services (SSIS) que faz conexão no ORACLE e grava no SQL Server 2016, porém eu criei todo o projeto em minha estação de trabalha que executou normalmente sem nenhum erro, em seguida eu fiz Deploy no Servidor de homologação para fazer os testes, foi ai que recebi a seguinte mensagem de erro:
Executed as user: User. Microsoft (R) SQL Server Execute Package Utility Version 13.0.5492.2 for 64-bit Copyright (C) 2016 Microsoft. All rights reserved. Started: 3:46:44 PM Error: 2020-10-13 15:46:44.46 Code: 0xC0016016 Source: Nome_Package Description: Failed to decrypt protected XML node “DTS:Password” with error 0x8009000B “Key not valid for use in specified state.”. You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.”
Em português:
Descrição: Falha ao descriptografar o nó XML protegido “DTS:Password” com o erro 0x8009000B “Chave inválida para uso no estado especificado.”. Talvez você não esteja autorizado a acessar essas informações. Esse erro ocorre quando há um erro criptográfico. Verifique se a chave correta está disponível.
Este erro ocorre quando os Packages são criados por um usuário e implantados por outro usuário.
“Estes passos serão necessários para cada Package que existir no projeto e que fizer conexões com outras fontes de dados, EX: ORACLE, INGRES, PostgreSQL, MySQL e etc. Quando a package fazer conexões de SQL Server para SQL Server não precisa fazer estes passos.”
Para corrigir este problema vamos configurar um arquivo XML para os dados de conexão do Package.
Primeiramente vamos abrir nosso projeto e clicar com o botão direito no nome do projeto e em seguida clicar em Convert to Package Deployment Model.
Logo após a conversão do seu projeto, abra seu package, do lado esquerdo vai abrir a área do Control Flow, na área livre clique com o botão direito e em seguida clique em propriedades como mostrado na imagem abaixo.
Será exibida a as propriedades do Package do lado direito, procure e expanda a opção Misc e clique no nos 3 pontos (…).
Será exibida a tela de “Package Configurations Organizer”, clique em Add.
Na tela seguinte será mostrado o Package Configuration Wizard, clique em Next.
A tela seguinte vamos escolher o tipo de arquivo de configuração.
Em Configuration Type deixe selecionado a opção: XML Configuration File, em seguida clique em Browser, de um nome ao arquivo e escolha onde você vai salvar. Clique em Next.
Nesta etapa vamos escolher as Connection managers para criar o XML, neste caso eu tenho três Connection managers, duas que fazem conexão para o ORACLE e uma para o SQL Server, como eu falei para conexões de SQL Server para SQL Server não é preciso configurar o XML.
Nesta etapa escolha as fontes de dados que você quer configurar o XML e marque apenas a opção Connection String. Clique em Next.
Nesta etapa de um nome ao arquivo e clique em Finish e Close na tela inicial.
Agora que configuramos o arquivo XML, vamos fazer Deploy no Servidor do Integration Services, para isso vamos abrir o SQL Server Management Studio, quando especificar o Server Name clique em Connect.
Ao se conectar ao SSIS expanda Stored Packages > MSDB e em Maintenance Plans clique com o botão direito para criar uma nova pasta. para armazenar nosso Package
Eu criei uma pasta chamada 01_TESTE, clique com o botão direito e em seguida em Import Package.
Em Package Location selecione a opção File System.
Em Package Path selecione o seu arquivo. DTSX e clique em OK.
Neste ponto já importamos nosso Package para o SSIS.
A próxima etapa é conectar no SQL Server e criar um JOB para executar este Package Automaticamente.
Expanda seu SQL Server e depois em SQL Server Agent e clique com o botão direito em JOBS e selecione New Job.
Em Name de um nome ao Job e clique em Steps.
Em Steps clique em New.
Em Step Name de o nome, é recomendado dar o mesmo nome que foi dado no DTSX para não confundir caso haja muitos packages.
Em Type escolha SQL Server Integration Services Package.
Em Package Source selecione SQL Server.
Em Server selecione o servidor do SSIS onde fizemos o depoy do Package.
Em Package navegue até o diretório onde está a package DTSX.
Agora clique em Configurations
Nesta etapa vamos adicionar arquivo de configuração XML, para isso basta clicar em Add.
Vá até o diretório onde foi salvo o arquivo XML e selecione e clique em OK.
Agora clique em OK novamente até a tela de configuração do JOB fechar.
Agora basta executar o Job.
Pessoal por hoje é só e até a próxima…