Pergunta

Eu tenho alguns pacotes SSIS que eram protegidos por senha (o seu nível de proteção é aparentemente EncryptAllWithPassword) por um desenvolvedor que deixou a empresa e não pode ser alcançado mais, e tentando abrir lhes dá o seguinte erro uma vez que o pode senha 't ser fornecido:

Erro ao carregar 'Package.dtsx': Falha ao remover a proteção pacote com erro 0xC0014037 "O pacote é criptografado com uma senha. o senha não foi especificado, ou não é corrigir. ". Isto ocorre na método CPackage :: LoadFromXML.

Existe alguma alguma maneira de abrir estes pacotes? Eu tenho acesso à conta de administrador originalmente usado para criar esses pacotes e ter outros pacotes criptografados pela mesma pessoa, mas usando uma senha diferente que eu sei.

Tenho contactado o representante local da Microsoft sobre o assunto e até agora eles só têm me ligado a uma uma página que descreve como definir ou alterar uma senha, que não ajuda, porque eu preciso para abrir o primeiro pacote ou fornecer a senha antiga. Alguém já esteve em uma situação semelhante antes ou sabe uma maneira de contornar este problema?

Foi útil?

Solução

Eu não acho que há alguma maneira de recuperar pacote se EncryptAllWithPassword é utilizado, todo o pacote é criptografado, e não pode ser decodificado sem senha. Pode-se tentar de senha curso adivinhar ou ataques de dicionário esperando o desenvolvedor usado senha fraca.

Se for EncryptSensitiveWithPassword -. Você pode abrir e em seguida, basta digitar novamente as senhas cadeia de conexão

Outras dicas

executar o abaixo consulta

SELECT sjs.command
FROM msdb.dbo.sysjobs sj
JOIN msdb.dbo.sysjobsteps sjs ON sj.job_id = sjs.job_id
WHERE sj.name = 'your package name'

No resultado Ver

verificação para o texto "/ DECRYPT", as próximas seguintes cadeias são a senha

Use esta consulta para encontrar a sua senha pacote:

SELECT step.command
FROM msdb.dbo.sysjobs job
JOIN msdb.dbo.sysjobsteps step ON job.job_id = step.job_id
WHERE step.command like '%Your Package Name%'

Nos resultados a única coluna displated é comando olhar através desse texto para / descriptografar a próxima cadeia depois será a senha entre aspas.

Parece que o pacote também foi armazenado no SQL Server (banco de dados msdb), exportação de serviços de integração no sistema de arquivos nos permite abri-lo (com um aviso sobre a perda de dados confidenciais). Esta solução funciona perfeitamente para esta situação particular; Nós principalmente, precisava saber o que acontece nestes pacotes.

Apenas, abrir o pacote no bloco de notas e altere o nível de proteção 2-1

<DTS:Property DTS:Name="ProtectionLevel">1</DTS:Property>

Eu concordo com o comentário de Michael sobre a adivinhação de senha ou dicionário ataque como sendo uma abordagem boa.

Eu estava prestes a também sugerir o uso de uma nuvem ambiente como EC2 para dividir e conquistar computação ... mas então eu percebi que você está preso em janelas!

Alterar o Protection level de pacote para encrypt com sensitiveKey e todos funcionam bem vontade. :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top