如何恢复或重置SSIS包密码?
我有一些受密码保护的 SSIS 包(它们的保护级别显然是 EncryptAllWithPassword),由离开公司且无法再访问的开发人员保护,并且尝试打开它们会出现以下错误,因为无法输入密码提供:
加载“Package.dtsx”时出错:无法删除包保护 错误 0xC0014037“该包是 用密码加密。 这 未指定密码,或未指定密码 正确。”。这发生在 CPackage::LoadFromXML 方法。
有什么办法可以打开这些包裹吗? 我可以访问最初用于创建这些包的管理员帐户,并让同一个人使用我知道的不同密码加密其他包。
我已就该问题联系了当地的 Microsoft 代表,到目前为止,他们仅将我链接到 描述如何设置或更改密码的页面,这没有帮助,因为我需要先打开包或提供旧密码。 有没有人遇到过类似的情况或者知道解决这个问题的方法?
I have a few SSIS packages that were password-protected (their protection level is apparently EncryptAllWithPassword) by a developer who left the company and can't be reached anymore, and trying to open them gives the following error since the password can't be supplied:
Error loading 'Package.dtsx' : Failed to remove package protection
with error 0xC0014037 "The package is
encrypted with a password. The
password was not specified, or is not
correct.". This occurs in the
CPackage::LoadFromXML method.
Is there any any way to open these packages? I have access to the administrator account originally used to create these packages and have other packages encrypted by the same person but using a different password that I know.
I have contacted a local Microsoft representative about the issue and so far they have only linked me to a a page describing how to set or change a password, which doesn't help because I need to open the package first or provide the old password. Has anyone been in a similar situation before or knows a way around this issue?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我认为如果使用EncryptAllWithPassword,就没有任何方法可以恢复包,整个包都是加密的,没有密码就无法解码。 当然,人们可以尝试密码猜测或字典攻击,希望开发人员使用弱密码。
如果是 EncryptSensitiveWithPassword - 您可以打开然后重新输入连接字符串密码。
I don't think there is any way to recover package if EncryptAllWithPassword is used, the whole package is encrypted, and can't be decoded without password. One can try of course password guessing or dictionary attacks hoping the developer used weak password.
If it is EncryptSensitiveWithPassword - you can open and then just retype the connection string passwords.
只需用记事本打开包并将保护级别从2更改为1
Just, open the package in notepad and change the protection level from 2 to 1
该包似乎也存储在 SQL Server(msdb 数据库)上,将其从 Integration Services 导出到文件系统中允许我们打开它(带有有关丢失敏感数据的警告)。 该解决方案非常适合这种特殊情况; 我们主要需要知道这些包中发生了什么。
It seems that the package was also stored on SQL Server (msdb database), exporting it from Integration Services into the file system allows us to open it (with a warning about losing sensitive data). This solution works perfectly for this particular situation; we mainly needed to know what happens in these packages.
以下是重置 SSIS 包密码的步骤
Here are the steps to reset the password of a SSIS package
我将@Venky 解决方案稍微修改为:
这向我显示了所有带有密码的包。
I modified @Venky solution slightly to:
This showed me all packages with passwords.
我同意迈克尔关于密码猜测或字典攻击的评论,认为这是一种好方法。
我正打算还建议使用像 EC2 这样的云计算环境来分而治之......但后来我意识到你被困在 Windows 上!
I agree with Michael's comment about a password guessing or dictionary attack as being a good approach.
I was just about to also suggest using a cloud computing environment like EC2 to divide and conquer ... but then I realized you are stuck on windows!
将包的
保护级别
更改为使用sensitiveKey
进行加密,一切都会正常工作。:)
Change the
Protection level
of package toencrypt
withsensitiveKey
and all will work fine.:)
执行以下查询
在结果视图中
检查文本“/DECRYPT”,接下来的字符串是密码
execute the below query
In the Result View
check for the text "/DECRYPT", the next following strings are the password
使用此查询查找您的包密码:
在结果中,显示的唯一一列是命令在该文本中查找 /DECRYPT,其后的下一个字符串将是用引号引起来的密码。
Use this query to find your package password:
In the results the only column displated is command look through that text for /DECRYPT the next string after it will be the password enclosed in quotation marks.