我有一些SSIS软件包受到密码保护(它们的保护级别显然是EncryptAllWithPassword)由开发人员离开公司而无法再到达,并且尝试打开它们会出现以下错误,因为密码可以不提供:
加载'Package.dtsx'时出错:无法删除包保护 错误0xC0014037“包是 用密码加密。该 密码未指定,或未指定 正确。“。这发生在 CPackage :: LoadFromXML方法。
有没有办法打开这些包裹?我可以访问最初用于创建这些软件包的管理员帐户,并让其他软件包由同一个人加密但使用我所知道的其他密码。
我已就此问题联系了当地的Microsoft代表,到目前为止他们只将我与a page describing how to set or change a password联系起来,这没有用,因为我需要先打开软件包或提供旧密码。有没有人之前处于类似的情况或知道解决这个问题的方法?
答案 0 :(得分:16)
执行以下查询
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'
在结果视图
中检查文本" / DECRYPT",接下来的字符串是密码
答案 1 :(得分:5)
使用此查询查找您的包裹密码:
>
在结果中,唯一的列被移位是命令查看/ DECRYPT文本后面的下一个字符串,它将是用引号括起来的密码。
答案 2 :(得分:2)
如果使用EncryptAllWithPassword,我认为没有办法恢复包,整个包都是加密的,没有密码就无法解码。人们可以尝试密码猜测或字典攻击,希望开发人员使用弱密码。
如果是EncryptSensitiveWithPassword - 您可以打开然后重新键入连接字符串密码。
答案 3 :(得分:1)
似乎该软件包也存储在SQL Server(msdb数据库)上,将它从Integration Services导出到文件系统允许我们打开它(带有关于丢失敏感数据的警告)。该解决方案适用于这种特殊情况;我们主要需要知道这些包中会发生什么。
答案 4 :(得分:1)
只需在记事本中打开包,并将保护级别从2更改为1
<DTS:Property DTS:Name="ProtectionLevel">1</DTS:Property>
答案 5 :(得分:0)
以下是重置SSIS软件包密码的步骤
答案 6 :(得分:-1)
我同意迈克尔关于密码猜测或字典攻击的评论是一种好方法。
我还准备建议使用像EC2这样的云计算环境来分裂和征服......但后来我意识到你被卡在了窗户上!
答案 7 :(得分:-1)
使用encrypt
将包的sensitiveKey
更改为registry=http://registry.npmjs.org
proxy=http://127.0.0.1:8888
https-proxy=http://127.0.0.1:8888
http-proxy=http://127.0.0.1:8888
strict-ssl=false
,一切正常。
:)